在 Swift3 中声明全局变量/常量的私有与文件私有?

fro*_*cjn 4 global-variables ios swift swift3

我应该使用 private 还是 fileprivate 在 Swift 3 中声明全局变量/常量?例如

fileprivate let a = 1
fileprivate class SomeClass {
    fileprivate b = 0
}
Run Code Online (Sandbox Code Playgroud)

或者

private let a = 1
private class someClass {
    fileprivate b = 0
}
Run Code Online (Sandbox Code Playgroud)

Meg*_*anX 5

它在文件级别确实没有区别,无论您使用的privatefileprivate,访问控制都是相同的,例如以这种方式定义的常量将仅在该文件中可用。

其他修饰符也可以这样说,在某些情况下,内部和私有变得相同,例如。相同的单文件模块。

对于这种情况下的所有意图和目的,您应该使用fileprivate,因为它更清楚地说明了意图 -> 您想在整个文件中使用它。

这是很合理的迅速的未来版本期待(有斯威夫特4一些修改建议),有的确会在这些修饰的变化,fileprivateprivate会在这种情况下,不同的范围。