Junior — Middle
Lze v rozhraní nebo protokolu definovat výchozí implementaci metody?
sobes.tech AI
Odpověď od AI
V Swiftu mohou protokoly obsahovat výchozí implementace metod prostřednictvím rozšíření (extensions). To umožňuje nastavit výchozí chování pro metody protokolu, které lze přepsat v konkrétních typech.
Příklad:
protocol Greetable {
func greet()
}
extension Greetable {
func greet() {
print("Výchozí pozdrav")
}
}
struct Person: Greetable {}
let p = Person()
p.greet() // Vypíše: Výchozí pozdrav
Tímto způsobem je výchozí implementace nastavena nikoli v samotném protokolu, ale v jeho rozšíření.