其中 fileprivate 和 open 是 Swift 3 新添加的。由于过去 Swift 对于访问权限的控制,不是基于类的,而是基于文件的。这样会有问题,所以 Swift 3 新增了两个修饰符对原来的 private、public 进行细分。
1、Open
Open 具备最高的访问权限。其修饰的类和方法可以在任意 Module中被访问和重写;它是Swft3中新添加的访问权限。
2、Public
Public 的权限仅次于Open。与Open唯一的区别在于,它修饰的对象可以在任意Module中被访问,但不能重写。
3、Internal
Internal 是默认的权限。它表示只能在当前定义的 Module中访问和重写。它可以被个 Module中的多个文件访问,但不可以被其他 Module访问。
4、Fileprivate
File-private 是Swift3新添加的权限。其修饰的对象只能在当前文件中使用。例如,它可以被一个文件中的class、 extensIon和struct共同使用。
5、Private
Private 是最低级别的访问权限,它的对象只能在定义的作用域内使用。离开了这个作用域,即使是同一文件的其他作用域,也无法访问。
网友评论