苹果是否删除了&;=来自Swift 1.2的布尔人操作员?
XCode 6.3在带有布尔值的苹果是否删除了&;=来自Swift 1.2的布尔人操作员?,swift,Swift,XCode 6.3在带有布尔值的&=上返回编译错误 “&=”不可用:请改用“&&”运算符 例如: var myBool = false myBool &= true 知道它为什么被移除了吗 我猜他们删除了它,因为&=是其他类型的位运算符,所以它作为布尔运算的逻辑运算符是不一致的(而且Bool上的位运算可能不受欢迎),所以实际上应该是&=。因为它的效用最小,所以没有定义。但是如果你想要的话: infix operator &&= { associativity r
&=
上返回编译错误
“&=”不可用:请改用“&&”运算符
例如:
var myBool = false
myBool &= true
知道它为什么被移除了吗 我猜他们删除了它,因为
&=
是其他类型的位运算符,所以它作为布尔运算的逻辑运算符是不一致的(而且Bool
上的位运算可能不受欢迎),所以实际上应该是&=
。因为它的效用最小,所以没有定义。但是如果你想要的话:
infix operator &&= {
associativity right
precedence 90
assignment
}
func &&=(inout lhs: Bool, @autoclosure rhs: ()->Bool) {
lhs = lhs && rhs
}
var myBool = true
myBool &&= false
可能是因为他们不知道如何使它一致地工作。在什么情况下?一个具体的例子会很有帮助,
var A=123;设b=454;a&=b
编译时没有问题。(然而,它不适用于布尔型。但我不知道它是否适用于布尔型。)是的,它适用于以前版本的Swift&&=
操作符,似乎已经存在于Swift中。请看文档中的点分配可能已经过时了,我认为该运算符已从Xcode 6 beta 4中的std库中删除。是的,经过检查,它在早期版本中仅被定义为运算符,从未在任何函数中实际实现,后来被完全删除。医生错了。