美文网首页
访问控制

访问控制

作者: 奋斗的小马达 | 来源:发表于2021-12-16 09:12 被阅读0次

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

popen:允许在定义实体的模块、其他模块中访问,允许其他模块进行继承、重写(open只能用在类、类成员上)

public:允许在定义实体的模块、其他模块中访问,不允许其他模块进行继承、重写

internal:只允许在定义实体的模块中访问,不允许在其他模块中访问

fileprivate:只允许在定义实体的源文件中访问

private:只允许在定义实体的封闭声明中访问

绝大部分实体默认都是 internal

二、访问级别的使用准则

一个实体不可以被更低访问级别的实体定义,比如
1、变量\常量类型 ≥ 变量\常量
2、参数类型、返回值类型 ≥ 函数
3、父类 ≥ 子类
4、父协议 ≥ 子协议
5、原类型 ≥ typealias
6、原始值类型、关联值类型 ≥ 枚举类型
7、定义类型A时用到的其他类型

解释
1、变量\常量类型 ≥ 变量\常量

如下图 截屏2021-12-15 下午3.41.29.png

变量类型 Persion 的访问级别是 fileprivate
变量 p 的访问级别是 internal
因为 internal > fileprivate
所以会报错

其他相同

三、元组的访问级别 是元组内访问界别最低的

元组类型的访问级别是所有成员类型最低的那个

internal struct Dog {}
fileprivate class Person {}
// (Dog, Person)的访问级别是fileprivate
fileprivate var data1: (Dog, Person)
private var data2:(Dog, Person)

相关文章

  • Nginx防盗链、Nginx访问控制、Nginx解析php相关配

    image.png Nginx访问控制 Nginx访问控制Nginx访问控制 目录访问控制 正则匹配文件访问控制 ...

  • 汇总:CISSP重点安全知识

    访问控制模型: 访问控制分为自主访问控制(DAC)和非自主访问控制1、自主访问控制自主访问控制允许客体的所有者、创...

  • 访问控制

    1. 访问控制原理1.1 访问控制策略 2. 主体、客体和访问权 3. 自主访问控制3.1 自主访问控制的主要特点...

  • (翻译)fabric1.2.1新特性-访问控制列表

    访问控制列表 Access Control Lists(ACL) 什么是访问控制列表? fabric 使用访问控制...

  • 访问控制

    private 私有,只能在其定义域内使用 fileprivate 文件级别,整个swift源文件内有效 inte...

  • 访问控制

    在Swift语言中,访问修饰符有五种,分别为fileprivate,private,internal,public...

  • 访问控制

    在Swift语言中,访问修饰符有三种,分别为private,internal和public。同时,Swift对于访...

  • 访问控制

    1>模块和源文件 Swift 中的访问控制模型基于模块和源文件这两个概念。 模块指的是独立的代码单元,框架或应用程...

  • 访问控制

    访问控制 Access Control 访问级别 实体是被访问级别修饰的内容绝大部分实体都是internal 修饰...

  • 访问控制

    访问控制(Access Control) 在访问控制这块,Swift提供5个不同的访问级别(以下是从高到低排列,实...

网友评论

      本文标题:访问控制

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