该文章已在了解新的访问说明很有帮助Swift 3.它也给出了不同用途的一些例子fileprivate和private.
我的问题是 - 是不是fileprivate在一个仅在此文件中使用的函数上使用与使用相同private?
Swift 3.0
我知道fileprivate访问级别修饰符限制使用函数/属性来声明它所声明的源文件,并且private- 仅限于声明的词法范围.但似乎这条规则不适用于扩展.EG此代码有效:
class Foo {
}
fileprivate extension Foo {
var aa: Int {
return aaa + 10
}
}
private extension Foo {
var aaa: Int {
return 20
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄清楚它们之间的区别吗?谢谢.
Swift 4.0
private现在可以在扩展名中访问,但在同一文件中.如果您在其他文件中声明/定义扩展名,则扩展程序将无法访问您的私有变量.
fileprivate 可以在同一个文件中访问.