swift - Swift 子句中 NOT 运算符的问题
问题描述
我正在用 Swift 5.0 编写一个应用程序来在世界各地移动我的角色,但if
条件体中的 NOT (!) 运算符存在一些问题。我写:
if character.!isBlocked {
character.moveForward()
}
但编译器说:错误:“。!” 它不是二元运算符
相反,如果我写
if character.isBlocked {
character.turnBack()
}
它完美地工作。是否可以使用否定子句作为if
条件子句?
解决方案
如果您的目标是验证为“如果不是”,那么您应该将其实现为:
if !character.isBlocked {
character.moveForward()
}
逻辑 NOT!
运算符是一元 前缀运算符:
一元:它是针对单个目标的。
前缀:它应该在目标之前。
那么,为什么它应该是 beforecharacter.isBlocked
而不是isBlocked
呢?
因为character.isBlocked
是要评估的布尔值,isBlocked
是属性名称。正确的语法是用来!
评估整个事物(布尔值)。
推荐阅读
- django - Heroku / Django 无法加载 GDAL 库
- java - Java - 隐藏 JPasswordField 中的字符串
- wordpress - 使用 Docker for Windows 时的 Wordpress 写访问权限
- excel - 使用 COUNTIF 与 COUNTIFS 使用单个条件。有区别吗?
- python - sql alchemy在where函数中的多个条件
- android - 如果设备中未安装 Twitter 应用程序,Twitter 登录将不起作用
- r - R中的for循环与if/else
- html - 如何在 HTML 的 div 中显示 XML 代码
- django - auth.views.Loginview 显示“__init__() 有一个意外的关键字参数 'request'”
- redirect - Sitecore - 类似 URL 的 301 重定向