镜头进入Swift属性

前端之家收集整理的这篇文章主要介绍了镜头进入Swift属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法在 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 })

然而,这比我想要的更冗长,乏味,更容易出错.是否有我缺少的内置功能

对于答案本身,到目前为止(1.1),任何语言构造都不会替代您正在做的事情(将存储属性的访问过程包装到可引用的对象中).

对于答案的意见部分,看起来你的代码只适用于公共变量,这对于打破基本的封装规则是很讨厌的,这是正确的吗?

猜你在找的Swift相关文章