美文网首页
Swift 访问级别

Swift 访问级别

作者: 洱舟 | 来源:发表于2018-12-20 10:35 被阅读2次
    • 模块和源文件
    • 访问级别

    一、模块和源文件

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

    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

    相关文章

      网友评论

          本文标题:Swift 访问级别

          本文链接:https://www.haomeiwen.com/subject/uwnekqtx.html