我已经能够手动执行以下 *** 作:
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: { .myProperty },setter: { .myProperty = })
然而,这比我想要的更冗长,乏味,更容易出错.是否有我缺少的内置功能?
对于答案本身,到目前为止(1.1),任何语言构造都不会替代您正在做的事情(将存储属性的访问过程包装到可引用的对象中).对于答案的意见部分,看起来你的代码只适用于公共变量,这对于打破基本的封装规则是很讨厌的,这是正确的吗?
总结以上是内存溢出为你收集整理的镜头进入Swift属性全部内容,希望文章能够帮你解决镜头进入Swift属性所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)