objective-c - 合并多个 Bool 返回值而不短路

标签 objective-c swift bitwise-and

Swift 2 对 Bool 值使用按位运算符有限制。这是可以接受的。在 ObjC 中,当您需要执行每个操作数时使用它非常有用。例如:

a.isFoo() & b.isFoo() & c.isFoo()

在这种情况下,使用按位 & 将执行每个方法。

如果我使用逻辑运算符&&,它将执行第一个,如果它为假,表达式将返回假而不执行其他两个操作数。

我想找到与 & 一样优雅的工作方式,在 Swift 中使用 Bool。可能吗?

最佳答案

您在 Objective-C 中所做的并不“优雅”。这很卑鄙,你不应该这样做。如果你想调用三个方法,就调用那三个方法!但是形成一个 bool 表达式,你应该使用逻辑运算符,而不是位运算符。所以,例如:

let (ok1, ok2, ok3) = (a.isBool(), b.isBool(), c.isBool())
let ok = ok1 && ok2 && ok3

关于objective-c - 合并多个 Bool 返回值而不短路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38085136/

相关文章:

objective-c - 在初始化时将参数传递给自定义类

objective-c - 使用 CGSize Points 或 Pixels 确定 UIFont 大小

objective-c - UIButton 上的标题被截断

ios - 我应该从 iOS 上的 Realm 中删除旧表吗?

php - 按位代码 "$n & ($n - 1)"有什么作用?

Objective-C ARC 和 longjmp

ios - 在 Swift 中将协议(protocol)作为参数实现的 UIViewController

swift - 当用户在 UITextField 中输入数字时,如何添加分组分隔符?

neo4j - Neo4j 密码查询中的按位运算替代方案

java - 如何在 Java 中对字节数组进行 AND 运算?