加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift中的“open”关键字是什么?

发布时间:2020-12-14 06:18:07 所属栏目:百科 来源:网络整理
导读:标准库中的 ObjectiveC.swift 文件包含第228行的以下几行代码: extension NSObject : Equatable,Hashable { /// ... open var hashValue: Int { return hash }} 在这个上下文中,open var是什么意思,或者一般是什么是open关键字? open是Swift 3中的一个新
标准库中的 ObjectiveC.swift文件包含第228行的以下几行代码:
extension NSObject : Equatable,Hashable {
  /// ...
  open var hashValue: Int {
    return hash
  }
}

在这个上下文中,open var是什么意思,或者一般是什么是open关键字?

open是Swift 3中的一个新的访问级别,介绍与实现

> SE-0117 Allow distinguishing between public access and public overridability

它可用于2016年8月7日的Swift 3快照,
和Xcode 8 beta 6。

简而言之:

>一个开放类是可访问的,并且可以在子类之外
定义模块。一个开放的类成员是可访问和
可在所述定义模块外部覆盖。
>一个公共类是可访问的,但不能在子类之外
定义模块。公共类成员可访问,但是
不能在定义模块之外覆盖。

所以开放是公众以前在以前
Swift的释放和公众的访问受到限制。
或者,正如克里斯·拉特纳所说
SE-0177: Allow distinguishing between public access and public overridability:

“open” is now simply “more public than public”,providing a very simple and clean model.

在你的例子中,打开var hashValue是一个可访问的属性,可以在NSObject子类中重写。

有关更多示例和详细信息,请查看SE-0117。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读