Poate fi definită o funcție în interiorul unei definiții de protocol?
sobes.tech AI
Răspuns de la AI
În Swift, în interiorul definiției unui protocol, nu se pot implementa funcții — protocoalele descriu doar cerințele pentru metode, proprietăți și alte membri care trebuie implementați în clase, structuri sau enumerări care respectă protocolul.
Adică, într-un protocol, poți declara semnătura unei funcții, dar nu corpul acesteia:
protocol MyProtocol {
func doSomething()
}
Implementarea funcției doSomething() trebuie furnizată în tipul care moștenește acest protocol.
Totuși, odată cu apariția extensiilor de protocol (protocol extensions), poți adăuga o implementare implicită a metodelor, care va fi disponibilă pentru toate tipurile care respectă protocolul:
extension MyProtocol {
func doSomething() {
print("Implementare implicită")
}
}
Astfel, direct în interiorul protocolului, nu se poate defini o funcție, dar se poate adăuga o implementare în extensia protocolului.