Junior — Middle
Lehet-e alapértelmezett módszermegvalósítást definiálni egy interfészben vagy protokollban?
sobes.tech MI
Válasz az MI-től
Swift-ben a protokollok tartalmazhatnak alapértelmezett módszer-implementációkat kiterjesztéseken keresztül. Ez lehetővé teszi, hogy alapértelmezett viselkedést adjunk meg a protokoll módszereihez, amelyeket konkrét típusokban felülírhatunk.
Példa:
protocol Greetable {
func greet()
}
extension Greetable {
func greet() {
print("Alapértelmezett üdvözlet")
}
}
struct Person: Greetable {}
let p = Person()
p.greet() // Kiírja: Alapértelmezett üdvözlet
Így az alapértelmezett megvalósítás nem a protokollban, hanem annak kiterjesztésében van meghatározva.