<分区>
我们可以为协议(protocol)扩展的方法参数设置默认值吗?
如果是这样,我们可以在实现该协议(protocol)的结构上重写这些方法吗?
我正在这样做,但我得到了意想不到的结果。这是为什么?谢谢!
import Foundation
protocol Datasource {
func getLetter(_ uppercased: Bool) -> String
}
extension Datasource {
func getLetter(_ uppercased: Bool = true) -> String {
return uppercased ? "B" : "b"
}
}
struct ADatasource: Datasource {
func getLetter(_ uppercased: Bool = true) -> String {
return uppercased ? "A" : "a"
}
}
let datasource: Datasource = ADatasource()
datasource.getLetter(true) // returns "A"
datasource.getLetter() // returns "B"