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