我是Swift的新手,并试图学习访问控制的概念。我在“swift编程语言2.1”中看到了这段代码。我理解代码"public private(set) var numberOfEdits = 0"
意味着对于变量numberOfEdits,它有一个公共getter和一个私有setter。
我的问题是,可以public private(set) var numberOfEdits = 0
写成public(get) private(set) var numberOfEdits = 0
以清楚地表明numberOfEdits有公共吸气剂吗?
public struct TrackedString {
public private(set) var numberOfEdits = 0
public var value: String = "" {
didSet {
numberOfEdits++
}
}
public init() {}
}
答案 0 :(得分:2)
不,getter始终具有非限定访问控制标签的访问级别。您可以使用private(set)
或internal(set)
覆盖设置者级别低于的getter级别。