Junior — Middle
Je možné priamo inštancovať objekt protokolu v programovacom jazyku?
sobes.tech AI
Odpoveď od AI
V Swift (programovacom jazyku pre iOS) protokoly opisujú súbor požiadaviek (metódy, vlastnosti), ktoré musí typ implementovať. Priamo vytvoriť inštanciu protokolu nie je možné, pretože protokol sám o sebe neobsahuje implementáciu.
Ak však existuje trieda alebo štruktúra, ktorá protokol implementuje, môžete vytvoriť inštanciu tohto typu a s ňou pracovať cez odkaz na protokol.
Príklad:
protocol Drawable {
func draw()
}
class Circle: Drawable {
func draw() {
print("Kreslíme kruh")
}
}
let shape: Drawable = Circle() // vytvorenie inštancie triedy, ktorá implementuje protokol
shape.draw() // volanie metódy protokolu
Ak potrebujete objekt, ktorý zodpovedá protokolu, ale nechcete vytvárať konkrétnu triedu, môžete použiť obalové typy alebo anonymné implementácie, ale priame vytvorenie inštancie protokolu nie je možné.