我试图在Swift 3中编写一个自定义赋值运算符,它允许我一次设置一个变量并更新其属性。像这样,
$(".checkbox-class").on("click", function (){
$(".form-class").submit();
});
理论上,这将允许我写
protocol BatchSettable { }
infix operator =<
public func =< <T: BatchSettable>(lhs: inout T?, rhs: (inout T) -> Void) {
if var copy = lhs {
rhs(©)
lhs = copy
} else {
lhs = nil
}
}
而不是
struct MyStruct: BatchSettable {
var someBoolProperty: Bool?
var someStringProperty: String?
}
self.myStruct =< {
$0.someBoolProperty = false
$0.someStringProperty = "someString"
}
我的目的是能够更新值类型属性(struct)上的多个字段,而不会多次触发var myVar = self.myStruct
myVar.someBoolProperty = false
myVar.someStringProperty = "someString"
self.myStruct = myVar
。
操作员本身编译时没有错误,但是当我尝试使用它时,我得到了
didSet
有什么想法吗?