'fileprivate'关键字在Swift中意味着什么?

Nat*_*iel 64 private access-modifiers swift

我从swift开始并打开一个使用swift2从xcode 8 beta创建的项目,private修改器改为fileprivate.这个关键字是什么意思?和它有什么不同private

Jan*_*ans 122

fileprivate是新的Swift 3访问修饰符之一,取而代之的private是它的含义.fileprivate将实体(类,扩展,属性,...)定义为声明的源文件之外的每个人都是私有的,但是该源文件中的所有实体都可以访问它.

private 将实体限制在直接封闭范围内.

  • "直接封闭范围"是什么意思?我什么时候才能使用`private`而不是`fileprivate`? (7认同)
  • 封闭范围是此扩展中的块或文件集,其中声明了一个实体,`private`意味着隐藏实现细节或隐藏限制为所有者的东西,而`fileprivate`可用于共享一些共同的同一文件中所有实体之间的功能. (4认同)
  • 在swift <3.0'private'中,像swift 3.0中的'fileprivate'.如果你在swift 2.3中声明例如两个带有私有变量的类但在同一个文件中它们仍然可以访问每个"私有"标记变量. (4认同)