swift - Swift 子句中的 NOT 运算符问题

标签 swift xcode operators

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

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

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

相反,如果我写

if character.isBlocked {
        character.turnBack()
     }

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

最佳答案

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

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

逻辑 NOT ! 运算符是一个一元 prefix 运算符:

  • 一元:针对单个目标。

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

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

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

关于swift - Swift 子句中的 NOT 运算符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56792240/

相关文章:

ios - 为什么必须将协议(protocol)运算符实现为全局函数?

ios - AsyncDisplayKit错误(使用ASDK作为静态库)

ios - 如何在 Xcode 中读取 plist 并根据其内容创建不同的数组

iPhone应用程序 : Where do I put a config file?

c++ - 运算符 '==' 错误

javascript - JavaScript 中 != 和 !== 运算符有什么区别?

objective-c - swift 3 - 方法不会覆盖其父类(super class)中的任何方法

ios - 如何用swift在折线图中显示json数据

bash - Bash 中运算符的优先级

c++ - 'ACTION' 的 Swift 编译器错误重新定义