注意! 〜只是一个示例前缀,我以后可能不会使用它。
我已经创建了一个函数,可以用来实例化一个类的实例,然后在闭包中设置一些属性。
首先我把它作为一个函数,但现在我想把它作为一个运算符。
目标是能够写下:
let view = ~UIView.self {
$0.hidden = true
}
但是我目前的实现我必须写:
let view = (~UIView.self) {
$0.hidden = false
}
我现在为运营商提供的代码是:
prefix operator ~ { }
prefix func ~<T: NSObject> (s: T.Type) -> ((_: (_:T) -> Void) -> T) {
let o = T.init()
return {
$0(o)
return o
}
}
我发现我可以将其更改为后缀运算符:
postfix operator ~ { }
postfix func ~<T: NSObject> (_: T.Type) -> ((_: (_:T) -> Void) -> T) {
let o = T.init()
return {
$0(o)
return o
}
}
然后写下来很好:
UIView.self~ {
$0.hidden = false
}
虽然我更愿意为前缀解决它!