Sobes.tech
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í.