Swift - 访问控制(fileprivate,private,internal,public,open)

Swift的访问控制是基于组件(Module)和源文件(soucefiles)
组件(Module)
应用程序和引用的framework都算一个Module
源文件(soucefiles)
组件中的swift源文件。但需要注意的是:一个swift源文件可以包含多个类型、方法等的定义。

  • private
    只能在当前类里可访问。

  • fileprivate
    在源文件里可访问,同一源文件可以类之间调用。

  • internal(默认访问级别,可不写)
    源代码所在的组件(Module)可访问。如在framwork中,App就不能访问

  • public
    全局可访问。但只能在所在的组件(Module)中继承(subclassed)和重写(overridden)

  • open
    全局可访问。全局均可继承(subclassed)和重写(overridden)
    排序

排序及跨度

private < fileprivate < internal < public < open
类私有:private
跨类:fileprivate < internal < public < open
跨源文件:internal < public < open
跨组件:public < open

参考:
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html#//apple_ref/doc/uid/TP40014097-CH41-ID3

推荐阅读更多精彩内容