【发布时间】:2020-07-24 13:37:50
【问题描述】:
我知道你可以给一个像这样的协议扩展的默认值
protocol SomeProtocol {
var prop: String { get }
}
extension SomeProtocol {
var prop: String {
return "defaultValue"
}
}
struct SomeA: SomeProtocol {}
struct SomeB: SomeProtocol {}
let a = SomeA()
let b = SomeB()
debugPrint(a.prop) // prints defaultValue
debugPrint(b.prop) // prints defaultValue
但是有没有办法为这样的协议的不同实现设置不同的默认值,而不为符合此协议的每个类或结构实现属性?
debugPrint(a.prop) // prints defaultValue
debugPrint(b.prop) // prints differentDefaultValue
或一些类似的模式来做这样的事情?
【问题讨论】:
-
你试过什么?什么不起作用?
-
您的答案有效,但我需要为许多类或结构使用相同的实现,我不想一次又一次地编写相同的实现。
标签: ios swift protocols swift-protocols protocol-oriented