swift access level(访问级别),open, public, internal fileprivate, private

在swift3.0之后,swift提供了open, public, internal fileprivate, private五种控制访问权限的修饰符。

private:(最低级别的权限)私有,修饰类的话当前文件可访问,修饰变量的话,实体内部或者extension内可访问

internal:模块内访问(模块:框架或独立的应用程序)

fileprivate:定义实体(class, struct, enum等)的源文件内访问

public: 公共访问,在模块内和模块外(通过import)都可以 访问

open: (最高级别的权限): 模块内和外都可以访问(同public), 只能修饰类和类内部的成员,不能修饰struct、enum等

访问级别由高到低的顺序:open > public > internal > fileprivate > private

public和open的区别

1. 除open外,public以及访问级别小于public的修饰符,修饰的类和类成员只能在定义的模块内被继承和被override

2. open修饰的类和类成员,在定义模块内,还有模块之外(import进来),都可以被继承和被override

你可能感兴趣的:(swift access level(访问级别),open, public, internal fileprivate, private)