Swift 权限修饰关键字

private :

  1. private 修饰的属性或方法只能在当前类中使用;当调用不在当前类中,即使是当前类相关对象也不能使用
  2. private 修饰的ClassStruct 在除在自身内部使用;其它的都不被允许(包括类的继承和实例化),因此一般开发中不会用private 修饰ClassStruct
  3. private 修饰的protocol,只允许在当前文件中遵循该protocol;其它的都是不被允许的(包括类型申明,函数或方法中的形参申明)

filePrivate:

  1. filePrivate 修饰的属性或方法,只能在当前文件中使用;当前文件内,可以跨类调用
  2. fileprivate 修饰ClassStructClass在当前文件内可以实例化和继承使用,在当前文件之外的任何地方都不允许被使用
  3. fileprivate 修饰的protocol,同private修饰protocol 效果一致,都是只允许在当前文件中遵循,不允许类型申明使用,函数和方法的形参声明

internal:

Swift 默认权限修饰关键字,一般不用声明,只允许在当前module中使用,继承,重写

public:

  1. public 修饰的属性, Structprotocol,允许跨module 使用
  2. public 修饰的Class,允许跨module使用,但是public修饰的Class是不允许跨module继承
  3. public 修饰的方法,允许跨module使用;但是不允许跨module重写,即使是该方法的类是采用open修饰

open:

  1. open 修饰的属性,跟public一致,因为存储型属性不予许重写
  2. open 不允许修饰protocolStructStruct方法,是因为open修饰的,表示可重载
  3. open 修饰方法,允许跨module调用和重写
  4. open 修饰class,允许跨module使用和继承

Swift 权限修饰关键字
https://wonderhoi.com/2024/12/09/Swift-权限修饰关键字/
作者
wonderhoi
发布于
2024年12月9日
许可协议