的iOS:二元运算符“| =”不能适用于两个“布尔”操作数

问题描述:

而在两个布尔值进行按位操作我得到了一个错误。 错误:“二元运算符‘| =’不能适用于两个‘布尔’操作数”的iOS:二元运算符“| =”不能适用于两个“布尔”操作数

func checkAvailability(available:Bool) -> Bool{ 
    var bChanged = false 
    bChanged |= available //"Binary operator '|=' cannot be applied to two 'Bool' operands" 
    return bChanged 
} 

请任何一个可以帮助我解决这个问题...

+0

'| ='哪个操作是这个???? –

+0

向我们展示这个操作符是如何定义的(它不在Swift中,所以你必须在某个地方定义它,或者它可能来自第三方库)。 – Moritz

+0

按位或'|' –

你可以自己定义通过重载操作者:

夫特2:

func |= (inout left: Bool, right: Bool) { 
    left = left || right 
} 

夫特3:

func |= (left: inout Bool, right: Bool) { 
    left = left || right 
} 
+0

感谢建设性的答案 - 不像一些在OP的问题的意见。为了保持一致,我已经将你的想法扩展到了其他两个失踪的运营商。 – RenniePet

这是卢的回答简单的扩大,包括其他两个“失踪”的运营商。

// A couple of operators that exist in C# and Java but are missing from Swift. 

public func |= (leftSide : inout Bool, rightSide : Bool) { 
    leftSide = leftSide || rightSide 
} 

public func &= (leftSide : inout Bool, rightSide : Bool) { 
    leftSide = leftSide && rightSide 
} 

public func ^= (leftSide : inout Bool, rightSide : Bool) { 
    leftSide = leftSide != rightSide 
}