是否有某种方法可以为 Swift 中的类中的属性自动生成 getter/setter 函数对?类似于 Haskell 中的镜头线的东西。
我已经能够手动执行以下操作:
class PropertyLens<U, T> {
let getter: U -> T
let setter: (U, T) -> ()
init(getter: (U -> T), setter: ((U, T) -> ())) {
self.getter = getter
self.setter = setter
}
func get(u: U) -> T {
return getter(u)
}
func set(u: U, t: T) {
setter(u, t)
}
}
// ...
let myPropertyLens = PropertyLens<MyClass, Int>(getter: { $0.myProperty }, setter: { $0.myProperty = $1 })
然而,这变得冗长、乏味并且比我想要的更容易出错。有没有我缺少的内置功能?