- open: 允许在定义实体的模块,其他模块中访问,允许其他模块进行继承,重写(open只能用在类,类成员上)
- public: 允许在定义实体的模块,其他模块中访问,不允许继承,重写(模块内可以)
- internal: 只允许在定义实体的模块中访问,不允许在其他模块中访问(默认)
- fileprivate: 在同一文件中访问
- private: 在实体内访问
全局内用private修饰类,变量或扩展,就是用fileprivate
class Test {
private struct Dog {
var age = 0 //Test内可用,如果显式用private修饰,则Person内不能使用age
func run() { }
}
private struct Person {
var dog = Dog()
mutating func walk() {
dog.run()
dog.age = 1
}
}
}
–EOF–