我正在使用Swift 5.0开发的应用程序在世界范围内移动角色,而if
条件主体中的NOT(!)运算符存在一些问题。
我写道:
if character.!isBlocked {
character.moveForward()
}
但是编译器说:错误:“。!”它不是二进制运算符
相反,如果我写了
if character.isBlocked {
character.turnBack()
}
它完美地工作。是否可以将否定子句用作if
条件子句?
答案 0 :(得分:1)
如果您要验证为“如果不是”,则应将其实现为:
if !character.isBlocked {
character.moveForward()
}
逻辑NOT !
运算符是 一元 前缀 运算符:
一元:用于单个目标。
前缀:应该在目标之前。
那么,为什么应该在character.isBlocked
之前而不是isBlocked
?
因为character.isBlocked
是要评估的布尔值,isBlocked
是属性名称。正确的语法是使用!
来评估整个对象(布尔值)。