Можем ли мы иметь значения по умолчанию для аргументов метода в расширениях протокола?
Если да, то можем ли мы переопределить эти методы в структурах, реализующих этот протокол?
Я делаю это, но у меня неожиданные результаты. Это почему? Спасибо!
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"