Junior — Middle
Може ли директно инстанцирати објекат протокола у програмском језику?
sobes.tech АИ
Одговор од АИ
U Swift-u (programski jezik za iOS), protokoli opisuju skup zahteva (metode, svojstva) koje tip mora implementirati. Nije moguće direktno kreirati instancu protokola, jer protokol sam po sebi ne sadrži implementaciju.
Međutim, ako postoji klasa ili struktura koja implementira protokol, možete kreirati instancu tog tipa i raditi s njim putem referenci na protokol.
Primer:
protocol Drawable {
func draw()
}
class Circle: Drawable {
func draw() {
print("Crta krug")
}
}
let shape: Drawable = Circle() // kreiranje instance klase koja implementira protokol
shape.draw() // pozivanje metode protokola
Ako vam je potreban objekat koji odgovara protokolu, ali ne želite da kreirate konkretnu klasu, možete koristiti omotače ili anonimne implementacije, ali direktna instanca protokola nije moguća.