Junior — Middle
Quelles opérations ou propriétés sont disponibles lors de la définition d'une classe, qui ne le sont pas dans une structure?
sobes.tech IA
Réponse de l'IA
En Swift, les classes ont plusieurs caractéristiques que les structures n'ont pas :
- Héritage : les classes peuvent hériter d'autres classes, permettant de créer des hiérarchies et de redéfinir des méthodes.
- Destructeurs (deinit) : les classes peuvent avoir des destructeurs pour libérer des ressources lors de la suppression d'une instance.
- Type de référence : les classes sont transmises par référence, tandis que les structures par valeur.
- Types de propriétés : les classes peuvent avoir des propriétés qui sont des références à des objets, ce qui influence la gestion de la mémoire.
- Utilisation possible de références
weaketunownedpour éviter les cycles de références fortes.
Exemple d'une classe avec un destructeur :
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) est en train d'être désinitialisée")
}
}