Junior — Middle
Milyen műveletek érhetők el a protokoll bővítésekor kiegészítésekkel?
sobes.tech MI
Válasz az MI-től
Swiftben az extensionök lehetővé teszik, hogy új funkciókat adjunk meglévő típusokhoz, beleértve a protokollokat is. Egy protokollt extension segítségével bővíthetünk, így:
- Alapértelmezett megvalósításokat adhatunk hozzá metódusokhoz és tulajdonságokhoz, így elkerülve, hogy ezeket minden olyan típusban meg kelljen valósítani, amely megfelel a protokollnak.
- Számított tulajdonságokat adhatunk hozzá.
- Új metódusokat adhatunk hozzá, amelyek minden, a protokollnak megfelelő típus számára elérhetőek.
Azonban, a protokollbővítések nem teszik lehetővé új követelmények (például új kötelező metódusok vagy tulajdonságok) hozzáadását, csak alapértelmezett megvalósításokat.
Példa:
protocol Greetable {
func greet()
}
extension Greetable {
func greet() {
print("Helló a protokoll kiterjesztéséből!")
}
}
struct Person: Greetable {}
let p = Person()
p.greet() // Kiírja: Helló a protokoll kiterjesztéséből!