访问控制权限 open public internal fileprivate private swift

 Swift 提供了五种不同的访问级别,分别是:openpublicinternalfileprivate 和 private,访问权限依次由高到低。

  • open: 可以在定义的模块中使用,也可在其他的模块中使用,(模块相当项目的target)其他模块也可继承、重写
    open只能用在类、类成员上。打包静态库给其他项目使用时就需使用open修饰

  • public:可以在定义的模块中使用,也可在其他的模块中使用,但是其他模块不能继承、重写

  • internal: 只允许在定义的模块中访问, 不允许在其他模块中方法。通常用来隐藏文件内部实现细节。

  • fileprivate: 只允许在定义的源文件中访问(只能在.swift文件中使用)

  • private: 只允许在定义的封闭声明中访问(例如:类中、一个函数的作用域内)

  注意:不加任何修饰时默认是internal。通常在设计接口时,如果只在应用程序或者框架内使用可以定义为internal级别。

 

 

模块:单一的代码分配单元。指的是FrameworkApp bundle。在 Swift 中,可以用import关键字引入自己的工程。

源文件:一个模块中的单个 Swift 源代码文件(指的是 Swift 中的Swift File,就是编写 Swift 代码的文件)。

 

默认级别

  • 若无显式声明,代码中所有实体的访问级别默认为 internal

  • 如果定义一个 public 或 internal 类型,其成员的访问级别默认为 internal

  • 如果定义一个 fileprivate 或 private 类型,其成员的访问级别默认为 fileprivate 或 private

 
posted @ 2022-07-26 15:14  黄增松  阅读(58)  评论(0编辑  收藏  举报