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/