Sobes.tech
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 weak et unowned pour é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")
    }
}