的iOS:二元运算符“| =”不能适用于两个“布尔”操作数
问题描述:
而在两个布尔值进行按位操作我得到了一个错误。 错误:“二元运算符‘| =’不能适用于两个‘布尔’操作数”的iOS:二元运算符“| =”不能适用于两个“布尔”操作数
func checkAvailability(available:Bool) -> Bool{
var bChanged = false
bChanged |= available //"Binary operator '|=' cannot be applied to two 'Bool' operands"
return bChanged
}
请任何一个可以帮助我解决这个问题...
答
你可以自己定义通过重载操作者:
夫特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
}
'| ='哪个操作是这个???? –
向我们展示这个操作符是如何定义的(它不在Swift中,所以你必须在某个地方定义它,或者它可能来自第三方库)。 – Moritz
按位或'|' –