美文网首页Swift学习Swift
Swift中对open、public、internal、file

Swift中对open、public、internal、file

作者: Sultan | 来源:发表于2019-08-26 10:44 被阅读0次

    Swift 为代码中的实体提供了五种不同的访问级别。这些访问级别不仅与源文件中定义的实体相关,同时也与源文件所属的模块相关。

    • Open 和 Public 级别可以让实体被同一模块源文件中的所有实体访问,在模块外也可以通过导入该模块来访问源文件里的所有实体。通常情况下,你会使用 Open 或 Public 级别来指定框架的外部接口。Open 和 Public 的区别在后面会提到。
    • Internal 级别让实体被同一模块源文件中的任何实体访问,但是不能被模块外的实体访问。通常情况下,如果某个接口只在应用程序或框架内部使用,就可以将其设置为 Internal 级别。
    • File-private 限制实体只能在其定义的文件内部访问。如果功能的部分细节只需要在文件内使用时,可以使用 File-private 来将其隐藏。
    • Private 限制实体只能在其定义的作用域,以及同一文件内的 extension 访问。如果功能的部分细节只需要在当前作用域内使用时,可以使用 Private 来将其隐藏。
      Open 只能作用于类和类的成员,它和 Public 的区别如下:
    • Public 或者其它更严访问级别的类,只能在其定义的模块内部被继承。
    • Public 或者其它更严访问级别的类成员,只能在其定义的模块内部的子类中重写。
    • Open 的类,可以在其定义的模块中被继承,也可以在引用它的模块中被继承。
    • Open 的类成员,可以在其定义的模块中子类中重写,也可以在引用它的模块中的子类重写。

    相关文章

      网友评论

        本文标题:Swift中对open、public、internal、file

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