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 以进一步了解。