为什么在 Swift 协议中总是在类型 属性 要求前加上 static 关键字?
Why always prefix type property requirement with the static keyword in Swift protocol?
在 The Swift Programming Language 一书的第 369 页上,它说 “始终使用静态前缀类型 属性 要求在协议中定义它们时使用关键字。”
示例代码:
protocol AnotherProtocol {
static var someTypeProperty: Int { get set }
}
这样做的原因或好处是什么?
因为没有 static
关键字,您最终会声明一个实例 属性 而不是类型 属性。紧跟在您引用的段落之后的示例显示了这一点:
Here’s an example of a protocol with a single instance property requirement:
protocol FullyNamed {
var fullName: String { get }
}
在 The Swift Programming Language 一书的第 369 页上,它说 “始终使用静态前缀类型 属性 要求在协议中定义它们时使用关键字。”
示例代码:
protocol AnotherProtocol {
static var someTypeProperty: Int { get set }
}
这样做的原因或好处是什么?
因为没有 static
关键字,您最终会声明一个实例 属性 而不是类型 属性。紧跟在您引用的段落之后的示例显示了这一点:
Here’s an example of a protocol with a single instance property requirement:
protocol FullyNamed { var fullName: String { get } }