我已经完成了一个在线课程,教我们写课程的属性:
class bar {
private var _foo:Int
var foo {
return _foo
}
}
从那以后我见过
class bar {
private (set) var foo:Int
}
这两种写作方式之间有什么区别,哪种方式最佳?
答案 0 :(得分:4)
第二个选项更简单,更清晰,还有一个额外的好处,就是仍然可以在属性上添加get
,set
,willSet
和didSet
块同时仍然在getter和setter上有明确的范围。当然你仍然可以将它们添加到私有属性中,但我认为代码开始变得不那么可读了。
另请注意,第一个选项是使用私有存储属性的公共只读计算属性。
第二个选项可以是计算属性或存储属性。