`public private(set) var numberOfEdits = 0` 可以写成 `public(get) private(set) var numberOfEdits = 0` 吗?

can `public private(set) var numberOfEdits = 0` be written as `public(get) private(set) var numberOfEdits = 0`?

我是 Swift 的新手,正在尝试学习访问控制的概念。我在 "the swift programming language 2.1" 中看到了这段代码。我理解代码 "public private(set) var numberOfEdits = 0" 意味着对于变量 numberOfEdits,它有一个 public getter 和一个私有 setter.

我的问题是,public private(set) var numberOfEdits = 0 可以写成 public(get) private(set) var numberOfEdits = 0 来清楚地表明 numberOfEdits 有一个 public getter 吗?

public struct TrackedString {
    public private(set) var numberOfEdits = 0
    public var value: String = "" {
        didSet {
            numberOfEdits++
        }
    }
    public init() {}
}

不,getter总是有不合格访问控制标签的访问级别。您可以使用 private(set)internal(set) 将 setter 的级别覆盖为 低于 getter 的级别。 =12=]