美文网首页
Swift中的访问级别

Swift中的访问级别

作者: 落叶刺客 | 来源:发表于2017-05-24 13:23 被阅读19次

  我在之前的笔记《项目基本架构的搭建》中提到过访问级别,这里再做一个详细的补充。Swift提供了5种访问级别,分别为open、public、internal、fileprivate和private。它们既可以修饰类、结构体、枚举等面向对象的类型,也可以修饰变量、常量、下标、元组、函数和属性等类型。其具体的含义为:

  • open:其访问限制是最小的,任何被open修饰的实体,无论是在自己的模块内部,还是在其它模块内,都可以被访问;
  • public:在同一个模块中,public和open完全一样。但是在不同的模块中,被public所修饰的类不能够被继承,被public所修饰的属性和方法不能被重写;
  • internal:它是默认的访问限定,被internal所修饰的实体只能在自己模块中被访问;
  • fileprivate:被fileprivate所修饰的实体只能在当前源文件中被访问;
  • private:private是真正意义上的“私有”,被private所修饰的实体只能在实体内部被访问。

  在上面所说的实体,主要是指类、结构体、枚举、变量、常量、下标、元组、函数和属性等类型。这些访问限制具体该如何使用呢?具体使用情况如下:

  • 如果类、结构体和枚举被定义为internal或者private,那么它们所声明的变量或者常量不能使用public访问级别。因为被public所修饰的变量或者常量可以被任何人访问,而internal和private则不是;
  • 函数的访问级别不能高于它的参数和返回类型的访问级别。比如说,如果函数被声明为public,而他的参数或者返回类型被声明为internal或者private,那么就会出现函数可以被任何人访问,而它的参数和返回类型则不可以被访问,这样会产生严重的问题;
  • 一般而言,在开发框架时,供别人使用的,应该设置为public,而不希望别人看到的东西,应该设置为internal或者private;
  • 在当前源文件中,只供自己使用的属性或者方法,一般应该设置为fileprivate。

相关文章

  • Swift 4.0 中的访问控制(Access Control)

    访问级别Swift 中提供了以下五种不同的访问级别。 访问控制语法 访问基本原则Swift 中的访问级别遵循一个基...

  • Swift中的访问级别

      我在之前的笔记《项目基本架构的搭建》中提到过访问级别,这里再做一个详细的补充。Swift提供了5种访问级别,分...

  • Swift5.1学习随笔之访问控制Access Control

    在访问权限控制中,swift中提供了5个不同的访问级别(以下是从高到低排列,实体指被访问级别修饰的内容) open...

  • swift-访问级别基本原则

    Swift 中的访问级别遵循一个基本原则:实体不能定义在具有更低访问级别(更严格)的实体中。例如: 一个publi...

  • Swift中对open、public、internal、file

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

  • Swift 访问级别

    模块和源文件 访问级别 一、模块和源文件 模块:指的是独立的代码单元,框架或应用程序会作为一个独立的模块来构建和发...

  • Swift 访问权限问题

    访问控制 访问控制可以限定其他源文件或模块中的代码对你的代码的访问级别 Swift中访问控制模型基于模块和源文件,...

  • 访问控制(Access Control)

    在访问权限控制中,Swift提供了5种不同的访问级别1.open:允许在定义实体的模块,其他模块中访问,允许其他模...

  • Swift语法 -- [19 - 访问控制]

    在访问权限控制这块,Swift提供了5个不同的访问级别: open: 允许在定义实体的模块、其他模块中访问,允许其...

  • Swift与OC的互相调用

    先说一下访问控制的原则:Swift中的访问级别遵循一个基本原则:实体在定义是不能使用比它访问级别更低、限制性更高的...

网友评论

      本文标题:Swift中的访问级别

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