Sobes.tech
Junior — Middle

Jaké akce jsou k dispozici při rozšíření protokolu pomocí rozšíření?

sobes.tech AI

Odpověď od AI

V jazyce Swift umožňují rozšíření (extensions) přidávat nové funkce k existujícím typům, včetně protokolů. Rozšířením protokolu pomocí extension lze:

  • Přidávat výchozí implementace metod a vlastností, což eliminuje nutnost jejich implementace v každém typu, který protokol implementuje.
  • Přidávat vypočítané vlastnosti.
  • Přidávat nové metody, které budou dostupné všem typům odpovídajícím protokolu.

Nicméně, rozšíření protokolů neumožňují přidávat nové požadavky (například nové povinné metody nebo vlastnosti), pouze výchozí implementace.

Příklad:

protocol Greetable {
    func greet()
}

extension Greetable {
    func greet() {
        print("Ahoj z rozšíření protokolu!")
    }
}

struct Person: Greetable {}

let p = Person()
p.greet() // Vytiskne: Ahoj z rozšíření protokolu!