访问协议扩展中的静态字段值
Access static field value in protocol extension
如果我有这样的协议:
protocol X {
static var typeName: String
}
有没有办法让协议扩展中的实例方法访问该字段的值?
extension X {
func getTypeName() -> String {
// return the static typeName property of this instance's type.
// I'd expect it to be something like self.Type.typeName, but that's not a thing apparentl.
}
}
显然,像这样的简单 getter 毫无用处,但它是我遇到的问题的一个最小示例。
您可以使用 Self
:
extension X {
func getTypeName() -> String {
Self.typeName
}
}
如果我有这样的协议:
protocol X {
static var typeName: String
}
有没有办法让协议扩展中的实例方法访问该字段的值?
extension X {
func getTypeName() -> String {
// return the static typeName property of this instance's type.
// I'd expect it to be something like self.Type.typeName, but that's not a thing apparentl.
}
}
显然,像这样的简单 getter 毫无用处,但它是我遇到的问题的一个最小示例。
您可以使用 Self
:
extension X {
func getTypeName() -> String {
Self.typeName
}
}