Junior — Middle
Welke operaties of eigenschappen zijn beschikbaar bij het definiëren van een klasse die niet in een structuur voorkomen?
sobes.tech AI
Antwoord van AI
In Swift hebben klassen verschillende kenmerken die structuren niet hebben:
- Overerving: klassen kunnen erven van andere klassen, waardoor hiërarchieën kunnen worden gemaakt en methoden kunnen worden overschreven.
- Deinitializers (deinit): klassen kunnen deinitializers hebben om bronnen vrij te maken bij het verwijderen van een instantie.
- Referentietype: klassen worden per referentie doorgegeven, terwijl structuren per waarde worden doorgegeven.
- Eigenschapstypen: klassen kunnen eigenschappen hebben die verwijzingen zijn naar objecten, wat het geheugenbeheer beïnvloedt.
- Mogelijkheid om
weakenunownedreferenties te gebruiken om sterke referentiecirkels te voorkomen.
Voorbeeld van een klasse met een deinitializer:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) wordt gedeinitialiseerd")
}
}