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

前端之家收集整理的这篇文章主要介绍了Swift中的“open”关键字是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
标准库中的 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

猜你在找的Swift相关文章