Sobes.tech
Junior — Middle

Ce acțiuni sunt disponibile atunci când extindeți protocolul cu extensii?

sobes.tech AI

Răspuns de la AI

În Swift, extensiile (extensions) permit adăugarea de noi funcționalități tipurilor existente, inclusiv protocoale. Prin extinderea unui protocol cu extension, se pot:

  • Adăuga implementări implicite pentru metode și proprietăți, evitând necesitatea de a le implementa în fiecare tip care adoptă protocolul.
  • Adăuga proprietăți calculate.
  • Adăuga metode noi, care vor fi disponibile pentru toate tipurile care respectă protocolul.

Cu toate acestea, extensiile de protocoale nu permit adăugarea de noi cerințe (de exemplu, metode sau proprietăți obligatorii noi), doar implementări implicite.

Exemplu:

protocol Greetable {
    func greet()
}

extension Greetable {
    func greet() {
        print("Salut din extensia protocolului!")
    }
}

struct Person: Greetable {}

let p = Person()
p.greet() // Va afișa: Salut din extensia protocolului!