访问控制权限 open public internal fileprivate private swift
Swift 提供了五种不同的访问级别,分别是:open、public、internal、fileprivate 和 private,访问权限依次由高到低。
-
open: 可以在定义的模块中使用,也可在其他的模块中使用,(模块相当项目的target)其他模块也可继承、重写。open只能用在类、类成员上。打包静态库给其他项目使用时就需使用open修饰 -
public:可以在定义的模块中使用,也可在其他的模块中使用,但是其他模块不能继承、重写。 -
internal: 只允许在定义的模块中访问, 不允许在其他模块中方法。通常用来隐藏文件内部实现细节。 -
fileprivate: 只允许在定义的源文件中访问(只能在.swift文件中使用) -
private: 只允许在定义的封闭声明中访问(例如:类中、一个函数的作用域内)
注意:不加任何修饰时默认是internal。通常在设计接口时,如果只在应用程序或者框架内使用可以定义为internal级别。
模块:单一的代码分配单元。指的是Framework或App bundle。在 Swift 中,可以用import关键字引入自己的工程。
源文件:一个模块中的单个 Swift 源代码文件(指的是 Swift 中的Swift File,就是编写 Swift 代码的文件)。
默认级别
-
若无显式声明,代码中所有实体的访问级别默认为
internal。 -
如果定义一个
public或internal类型,其成员的访问级别默认为internal; -
如果定义一个
fileprivate或private类型,其成员的访问级别默认为fileprivate或private。
在北京的灯中,有一盏是我家的。这个梦何时可以实现?哪怕微微亮。北京就像魔鬼训练营,有能力的留,没能力的走……

浙公网安备 33010602011771号