我正在使用快速语言,我对get / set属性有疑问。我认为当值由计算属性管理时,让内部变量公开是没有意义的。所以我认为将这个私有化为一个很好的做法。因为我还在学习,也许你们中的一些人可以给我其他想法让它公开。
class aGetSetClass{
private var uppercaseString : String
var upperString : String {
get {
return uppercaseString
}
set (value) {
self.uppercaseString = value.uppercaseString
}
}
init(){
uppercaseString = "initialized".uppercaseString
}
}
var instance3 = aGetSetClass()
println(instance3.upperString) // INITIALIZED
instance3.upperString = "new"
// println(instance3.uppercaseString) // private no access
println(instance3.upperString) // NEW
instance3.upperString = "new123new"
println(instance3.upperString) // NEW123NEW
答案 0 :(得分:0)
我能想到公共访问权限的唯一方法是将其设置为transition-duration
,然后使用private
设置函数代替:
public
或者将其设为public private(set) uppercaseString: String
public func setUpperString(string: String) {
uppercaseString = string.uppercaseString
}
并使用public
将自己置于特定条件下(对于长字符串效率非常低):
didSet
这些实现使用直接公共访问,但您的版本在我看来更好/"更快捷的"方式。