Swift中现有的5个权限关键字: open
public
internal
private
fileprivate
这5个关键字都可以用来修饰属性和方法, 那么他们之间的具体区别是什么呢?
- open: 最高权限,可以被任何module和文件访问和继承重写, 比如引入的一个三方库中, 有需要被本app使用的方法或者属性, 一般都会被声明为open.
- public: 可以被任何人访问,但是在其他module中不可以被继承和重写,在当前module内可以.
- internal: 为默认属性, 可以省略不写, 如果项目没有进行组件化开发,整个APP项目内都是可以访问的.
- private: 被private修饰的属性和方法 ,只可以在该类下使用(extension可使用,因为是同类.)
- fileprivate: fileprivate和private 想比较一下,区别一目了然,相同文件下是可以调用的,其他和private一样.