Junior — Middle
Lze přímo instancovat objekt protokolu v programovacím jazyce?
sobes.tech AI
Odpověď od AI
Ve Swiftu (programovací jazyk pro iOS) protokoly popisují sadu požadavků (metody, vlastnosti), které musí typ implementovat. Nelze přímo vytvořit instanci protokolu, protože protokol sám o sobě neobsahuje implementaci.
Nicméně, pokud existuje třída nebo struktura, která protokol implementuje, lze vytvořit instanci tohoto typu a pracovat s ní přes odkaz na protokol.
Příklad:
protocol Drawable {
func draw()
}
class Circle: Drawable {
func draw() {
print("Kreslíme kruh")
}
}
let shape: Drawable = Circle() // vytvoření instance třídy, která implementuje protokol
shape.draw() // volání metody protokolu
Pokud potřebujete objekt, který odpovídá protokolu, ale nechcete vytvářet konkrétní třídu, můžete použít obalové typy nebo anonymní implementace, ale přímá instanciace protokolu není možná.