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