【发布时间】:2017-01-01 01:34:11
【问题描述】:
我似乎对 Swift 中的访问控制修饰符有一些误解。这是我在操场上的代码:
class Something {
private (set) var name :String {
get { return "" }
set {}
}
}
var thing = Something();
thing.name = "";
我的直觉和其他语言的经验告诉我,最后一行应该有编译器错误。
我正在学习的这本书指出,私有意味着被修改的成员只能从同一个源文件中访问。
我可以安全地假设这种情况在大多数项目中通常是一个错误,这仅仅是因为我在操场上运行这段代码吗?
私有成员只能从同一个源文件中访问的说法是否完全准确?
【问题讨论】:
-
“私有成员只能从同一个源访问” 对 Swift 2 来说是完全正确的。 – Swift 3 (Xcode 8 beta 6) 改变了私有的含义,比较What is a good example to differentiate between fileprivate and private in swift3.
-
@MartinR 谢谢,发表您的评论作为答案,我会接受。
-
我不想重复现有的答案 :) – 实际上你的问题对我来说并不清楚。你最后的陈述是正确的,那你为什么想知道呢?您所说的“这种情况在大多数项目中通常会出错”是什么意思?