Swift 子句中 NOT 运算符的问题

Problem with NOT operator in Swift clauses

我正在使用 Swift 5.0 编写一个应用程序来让我的角色在世界各地移动,我在 if 条件体中的 NOT (!) 运算符有一些问题。 我写道:

 if character.!isBlocked {
    character.moveForward()
 }

但编译器说:错误:“.!”它不是二元运算符

相反,如果我写

if character.isBlocked {
        character.turnBack()
     }

它工作得很好。是否可以使用否定从句作为 if 条件从句?

如果您的目标是验证为 "if not",那么您应该将其实现为:

if !character.isBlocked {
    character.moveForward()
}

逻辑 NOT ! 运算符是 unary prefix 运算符:

  • 一元:针对单个目标。

  • 前缀:应该在目标之前。

那么,为什么它应该在 character.isBlocked 而不是 isBlocked 之前?

因为 character.isBlocked 是要评估的布尔值,所以 isBlocked 是 属性 名称。正确的语法是使用 ! 来评估整个事物(布尔值)。