Swift中权限关键字

3 篇文章 1 订阅
3 篇文章 0 订阅

Swift中权限关键字

在了解Swift中的权限关键字之前我们需要知道模块和源文件两个概念:

1.模块指的是独立地代码分发单元,框架或应用程序会作为一个独立的模块来构建和发布。在 Swift 中,一个模块可以使用 import 关键字导入另外一个模块。

2.源文件就是 Swift 中的源代码文件,它通常属于一个模块,即一个应用程序或者框架。尽管我们一般会将不同的类型分别定义在不同的源文件中,但是同一个源文件也可以包含多个类型、函数之类的定义。

Swift 中有个5个级别的访问控制权限,从高到低依次是 open, public, internal, fileprivate, private

open: 最高的权限,可以被其他模块访问,继承及重写。比如引入的一个第三方库中, 有需要被本App使用的方法或者属性, 一般都会被声明为open。

public:权限仅次于open,可以在任何地方被访问。和 open 唯一的区别是: 不允许其他模块进行继承、重写。那么什么样才能成为一个模块呢?一个APP就是一个模块,一个第三方框架等都是一个完整的模块,这些模块如果要对外留有访问的属性或者方法,就应该使用 public 的访问权限。

internal:Swift 中默认就是 internal ,可以省略不写。只允许在当前的模块中访问,继承和重写,不允许在其他模块中访问。

fileprivate: 可以在同一个物理文件中访问(包含 extension),在子类中能访问。

private: 只允许在定义的作用域内访问(包含 extension)访问,在子类中不能访问。

它们遵循的基本规则: 高级别的变量不允许被定义为低级别变量的成员变量,比如一个 private 的 class 内部允许包含 public的 String值,反之低级变量可以定义在高级别变量中.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值