Я знаю, что вы можете задать значение по умолчанию с таким расширением протокола, как это
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
или какой-то подобный образец для того, чтобы сделать что-то подобное?