我想在Objective-C中添加自定义运算符(?=X)
:
&=
但我在最后一行有一个错误:
错误:变异运算符的左侧不可变:'i'是不可变的 i& = 1> 0
有人能帮助我吗?
答案 0 :(得分:1)
您的&=
运算符会改变左操作数,因此您拥有
将lhs
定义为 inout参数(而不是返回
一个值)。
您还可以删除运营商定义,&=
已定义
在Swift标准库中作为
infix operator &= : AssignmentPrecedence
(用于BitwiseOperations
)。所以这已足够并按预期工作:
func &=(lhs: inout Bool, rhs: @autoclosure () -> Bool) {
lhs = lhs && rhs()
}
var i = true
i &= 1 < 0