private setter 和 readonly 属性 有什么区别?
What's the difference between private setter and readonly property?
有什么区别:-
private(set) var string: String
和
var string: String { get }
Private setter 表示变量可以在声明它的 class 中设置。在 class 之外它的行为类似于只读 属性范围。
Readonly 属性 只能访问,不能改变。也不例外。
我认为:对于Private var string: String,其他文件无法访问。但你可以改变它的价值。
而对于 var string: String {get},其他文件可以访问它,你可以设置另一个 属性 来改变它的值,如:var stringValue = "";
var string: String {get{return stringValue}},可以改变stringValue来改变string。只是我的想法。
private(set) var string: String
- 在这种情况下 private(set)
仅使 set 函数私有,而 private 使 set 和 get 函数都私有。
var string: String { get }
- 而在这种情况下变量字符串是只读的。
如果需要,请访问此 http://kostiakoval.github.io/posts/swift-public-property-with-private-setter 以进一步了解。
有什么区别:-
private(set) var string: String
和
var string: String { get }
Private setter 表示变量可以在声明它的 class 中设置。在 class 之外它的行为类似于只读 属性范围。
Readonly 属性 只能访问,不能改变。也不例外。
我认为:对于Private var string: String,其他文件无法访问。但你可以改变它的价值。 而对于 var string: String {get},其他文件可以访问它,你可以设置另一个 属性 来改变它的值,如:var stringValue = ""; var string: String {get{return stringValue}},可以改变stringValue来改变string。只是我的想法。
private(set) var string: String
- 在这种情况下 private(set)
仅使 set 函数私有,而 private 使 set 和 get 函数都私有。
var string: String { get }
- 而在这种情况下变量字符串是只读的。
如果需要,请访问此 http://kostiakoval.github.io/posts/swift-public-property-with-private-setter 以进一步了解。