`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=]
我是 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=]