在 Swift 中,定义通用模式的常规方法是什么,其中属性在外部是只读的,但可以在内部由拥有它的类(和子类)修改。
在Objective-C中,有以下选项:
在 Java 中,约定是:
Swift 的成语是什么?
最佳答案
给定一个类属性,您可以指定不同的访问级别,方法是在属性声明前加上访问修饰符,后跟括号之间的 get
或 set
。例如,具有公共(public) getter 和私有(private) setter 的类属性将声明为:
private(set) public var readonlyProperty: Int
推荐阅读:Getters and Setters
Martin 关于可访问性级别的考虑仍然有效 - 即没有 protected
修饰符,internal
仅限制对模块的访问,private
仅限当前文件,public
没有任何限制。
2 个新的访问修饰符,fileprivate
和 open
已添加到语言中,而 private
和 public
稍作修改:
open
仅适用于类和类成员:它用于允许对类进行子类化或在定义它们的模块之外覆盖成员。 public
反而使类或成员可公开访问,但不可继承或覆盖
private
现在使成员仅从封闭声明可见和可访问,而 fileprivate
对包含它的整个文件
更多详情 here .
https://stackoverflow.com/questions/25708439/