Sobes.tech
Junior — Middle

Ar galima nustatyti numatytąją metodo įgyvendinimą sąsajoje ar protokole?

sobes.tech AI

Atsakymas iš AI

Swift'e protokolai gali turėti numatytąsias metodų įgyvendinimo versijas per išplėtimus (extensions). Tai leidžia nustatyti standartinį elgesį protokolo metodams, kurį galima perrašyti konkrečiuose tipuose.

Pavyzdys:

protocol Greetable {
    func greet()
}

extension Greetable {
    func greet() {
        print("Numatytasis pasisveikinimas")
    }
}

struct Person: Greetable {}

let p = Person()
p.greet() // Išves: Numatytasis pasisveikinimas

Taip, numatytoji įgyvendinimo versija nėra nustatyta pačiame protokole, o jo išplėtimo dalyje.