首页 > 解决方案 > Swift 子句中 NOT 运算符的问题

问题描述

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

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

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

相反,如果我写

if character.isBlocked {
        character.turnBack()
     }

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

标签: swiftxcodeoperators

解决方案


如果您的目标是验证为“如果不是”,那么您应该将其实现为:

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

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

  • 一元:它是针对单个目标的。

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

那么,为什么它应该是 beforecharacter.isBlocked而不是isBlocked呢?

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


推荐阅读