【发布时间】:2017-04-19 18:17:02
【问题描述】:
特别是关于成员变量,Swift 3 中的以下内容有区别吗?在这两种情况下,同一文件中的所有代码都可以访问 Foo。隐式作用域的“laa”属性也是如此,这似乎与文档相矛盾。
如果您将类型的访问级别定义为私有或文件私有,则其成员的默认访问级别也将是私有或文件私有。
但是,在以下两种情况下,“laa”都可以从同一文件中的其他类访问,这意味着它是文件私有的,而不是文档所说的第一个应该是私有的。
private class Foo
{
var laa:String
}
fileprivate class Foo
{
var laa:String
}
【问题讨论】:
-
感谢您删除副本! :)
-
我只想说在这种情况下文档是错误的,或者至少是误导性的——
private类型的成员可访问的范围默认情况下是定义该类型的封闭范围。在顶层声明的情况下——文件就是那个范围。 -
你应该把它作为答案,而不是评论,所以我可以这样关闭它。
标签: swift