标准库中的ObjectiveC.swift文件在第 228 行附近包含以下几行代码:
ObjectiveC.swift
extension NSObject : Equatable, Hashable { /// ... open var hashValue: Int { return hash } }
open var在这种情况下是什么意思,或者open一般来说关键字是什么?
open var
open
open是 Swift 3 中的一个新的访问级别,引入了
它在 2016 年 8 月 7 日的 Swift 3 快照和 Xcode 8 beta 6 中可用。
简而言之:
public
以前的 Swift 版本也是如此,并且访问open受到限制。或者,正如 Chris Lattner 在 SE-0177 中所说 :允许区分公共访问和公共覆盖:public``public
public``public
“涣笔”现在简直就是“公比公”,提供了一个非常简单干净的模型。
在您的示例中,open var hashValue是一个可以访问并且可以在NSObject子类中覆盖的属性。
open var hashValue
NSObject
有关更多示例和详细信息,请查看SE-0117。