Swift子句中的NOT运算符问题

时间:2019-06-27 13:33:34

标签: swift xcode operators

我正在使用Swift 5.0开发的应用程序在世界范围内移动角色,而if条件主体中的NOT(!)运算符存在一些问题。 我写道:

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

但是编译器说:错误:“。!”它不是二进制运算符

相反,如果我写了

if character.isBlocked {
        character.turnBack()
     }

它完美地工作。是否可以将否定子句用作if条件子句?

1 个答案:

答案 0 :(得分:1)

如果您要验证为“如果不是”,则应将其实现为:

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

逻辑NOT !运算符是 一元 前缀 运算符:

  • 一元:用于单个目标。

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

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

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