Sobes.tech
Junior — Middle

Ar galima tiesiogiai kurti protokolo objektą programavimo kalboje?

sobes.tech AI

Atsakymas iš AI

Swift (iOS programavimo kalba) protokolai aprašo reikalavimų rinkinį (metodus, savybes), kurį turi įgyvendinti tam tikras tipas. Negalima tiesiogiai sukurti protokolo pavyzdžio, nes pats protokolas nesuteikia įgyvendinimo.

Tačiau, jei yra klasė ar struktūra, kuri įgyvendina protokolą, galite sukurti šio tipo pavyzdį ir dirbti su juo per nuorodą į protokolą.

Pavyzdys:

protocol Drawable {
    func draw()
}

class Circle: Drawable {
    func draw() {
        print("Piešiame ratą")
    }
}

let shape: Drawable = Circle() // sukuriame klasės, įgyvendinančios protokolą, pavyzdį
shape.draw() // kviečiame protokolo metodą

Jei jums reikia objekto, kuris atitinka protokolą, bet nenorite kurti konkrečios klasės, galite naudoti apvalkalo tipus arba anoniminius įgyvendinimus, tačiau tiesioginis protokolo instancijavimas nėra įmanomas.