Apple是否从Swift 1.2中删除了& =运算符?

时间:2015-04-12 19:26:41

标签: swift

XCode 6.3在带有布尔值的&=上返回编译错误。

'&=' is unavailable: use the '&&' operator instead

示例:

var myBool = false
myBool &= true

知道它被删除的原因吗?

1 个答案:

答案 0 :(得分:2)

我猜他们会删除它,因为&=是其他类型的按位运算符,因此它作为布尔值上的逻辑运算符会不一致(并且Bool上的按位运算可能是皱眉的),真的应该是&&=。这可能没有定义,因为它具有最小的效用。但如果你想要它:

infix operator &&= {
    associativity right
    precedence 90
    assignment
}

func &&=(inout lhs: Bool, @autoclosure rhs: ()->Bool) {
    lhs = lhs && rhs
}

var myBool = true
myBool &&= false