【发布时间】:2021-12-12 00:20:28
【问题描述】:
我花了一些时间试图理解EnvironmentValues 中使用的语法,我希望有人能指出我是否犯了任何错误。
extension EnvironmentValues {
var isSensitive: Bool {
get { self[SensitiveKey.self] }
set { self[SensitiveKey.self] = newValue }
}
}
我的理解是 getter 和 setter 的主体使用 下标语法,其中第一个 self 将 EnvironmentValues 字典作为对象引用。方括号允许将键传递给该对象。密钥本身是SensitiveKey 的元类型实例,它是先前定义的EnvironmentKey。它允许访问任何类型的属性和方法,在这种情况下,这将是EnvironmentKey 所需的defaultValue。
我是否理解正确?如果您能澄清我在这里的任何误解,我将不胜感激。
干杯。
【问题讨论】: