Swift 访问级别

  • 模块和源文件
  • 访问级别

一、模块和源文件

模块:指的是独立的代码单元,框架或应用程序会作为一个独立的模块来构建和发布。

Xcode 的每个 target(例如框架或应用程序)都被当作独立的模块处理。如果你是为了实现某个通用的功能,或者是为了封装一些常用方法而将代码打包成独立的框架,这个框架就是 Swift 中的一个模块


源文件:是 Swift 中的源代码文件

二、访问级别

  • Open 和 Public 级别可以让实体被同一模块源文件中的所有实体访问,在模块外也可以通过导入该模块来访问源文件里的所有实体(不仅可以被同一模块访问,也能被其他模块访问,但其他模块访问需要导入模块)。Open 和 Public 的区别在后面会提到。
  • Internal 级别让实体被同一模块源文件中的任何实体访问,但是不能被模块外的实体访问(只能在当前模块访问,其他模块访问不了)。默认访问级别
  • File-private 限制实体只能在其定义的文件内部访问(只能在当前源文件访问)。
  • Private 限制实体只能在其定义的作用域,以及同一文件内的 extension 访问(只能在当前类调用,不能再其他类中使用)。

Open 为最高访问级别(限制最少),Private 为最低访问级别(限制最多)

Open 和 Public 区别
比较点:继承、子类重写(Public 只能在模块内被继承或重写,Open则可以在模块内或者被导入的模块内继承或重写)
  • Public 或者其它更严访问级别的类,只能在其定义的模块内部被继承。
  • Public 或者其它更严访问级别的类成员,只能在其定义的模块内部的子类中重写。
  • Open 的类,可以在其定义的模块中被继承,也可以在引用它的模块中被继承。
  • Open 的类成员,可以在其定义的模块中子类中重写,也可以在引用它的模块中的子类重写。

三、访问级别顺序

Open > Public > Internal > File-private >Private

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 中文文档 一、模块和源文件 Swift 中的访问控制模型基于模块和源文件这两个概念。 模块指的是独立的代码单元,框...
    伯wen阅读 2,571评论 0 0
  • 本章将会介绍 模块和源文件访问级别访问控制语法自定义类型子类常量、变量、属性、下标构造器协议扩展泛型类型别名位运算...
    寒桥阅读 4,463评论 0 2
  • 访问控制 可以限定其它源文件或模块中的代码对你的代码的访问级别。这个特性可以让我们隐藏代码的一些实现细节,并且可以...
    答案MK阅读 2,338评论 0 0
  • 六出不至江南地,只有霏霏雨。年前,和分湖诗社各师友冒雨前往袁家浜、叶周村探梅。事先不知老友梅子也去,途中遇之,高兴...
    絮飞儿阅读 1,873评论 0 0
  • Jadon7阅读 3,101评论 0 0

友情链接更多精彩内容