为协议属性快速设置不同的默认实现

问题描述 投票:0回答:1

我知道您可以使用这样的协议扩展名提供默认值

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
1个回答
1
投票
extension SomeB { var prop: String { "differentDefaultValue" } }
🤔
© www.soinside.com 2019 - 2024. All rights reserved.