Можем ли да имаме стойности по подразбиране за аргументи на метода за разширения на протокол?
Ако е така, можем ли да отменим тези методи на структури, които имплементират този протокол?
Правя го, но имам неочаквани резултати. Защо така? Благодаря!
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"