Kun je een structuur erven van meerdere ouders?
sobes.tech AI
Antwoord van AI
Nee. In Objective-C en Swift ondersteunen geen structuren meervoudige overerving.
In Swift beschikken structuren over aanzienlijke mogelijkheden, waaronder protocollen, extensies, methoden, berekende eigenschappen, opgeslagen eigenschappen en initializers.
Echter, om vergelijkbare doelen in Swift te bereiken, worden gebruikt:
-
Protocollen: Definiëren een set van vereisten (methoden, eigenschappen, initializers). Een type (structuur of klasse) kan voldoen aan één of meerdere protocollen, waardoor het hun "gedrag" overneemt.
// Voorbeeld van een protocol protocol Animal { var name: String { get } func makeSound() } // Structuur die voldoet aan het protocol struct Dog: Animal { let name: String func makeSound() { print("Woef!") } } -
Extensies: Voeg nieuwe functies toe aan een bestaand type zonder de broncode te wijzigen.
// Voorbeeld van een extensie voor String extension String { func reversedWords() -> String { let words = self.split(separator: " ") return words.reversed().joined(separator: " ") } } // Gebruik van de extensie let sentence = "Hallo wereld" print(sentence.reversedWords()) // Uitvoer: wereld Hallo
Swift-classes ondersteunen enkelvoudige overerving van één ouderklasse, maar kunnen meerdere protocollen implementeren.