Sobes.tech
Junior

Qu'est-ce que les types de référence?

sobes.tech IA

Réponse de l'IA

Les types de référence (Reference Types) sont des types de données qui, lors de leur attribution ou passage à une fonction, transmettent une référence à l'instance de l'objet en mémoire, et non une copie de celui-ci.

Caractéristiques clés :

  • Plusieurs variables peuvent faire référence à la même instance d'un objet.
  • La modification de l'état de l'objet via une référence se reflète dans toutes les autres références à ce même objet.
  • La gestion des types de référence se fait via des pointeurs vers des objets dans le tas (heap).

Exemples de types de référence en Swift :

  • Classes (class)
  • Fonctions (func)
  • Closures ({...})

Comparaison avec les types de valeur (Value Types) :

Caractéristique Type de référence (Reference Type) Type de valeur (Value Type)
Ce qui est transmis Référence (adresse en mémoire) Copie de la valeur
Lieu de stockage Tas (Heap) Pile (Stack)
Copie La référence est copiée La valeur est copiée
Modification Affecte l'objet original Affecte la copie
class MyClass {
    var value: Int

    init(value: Int) {
        self.value = value
    }
}

var object1 = MyClass(value: 10) // Création d'une instance de classe
var object2 = object1          // object2 référence maintenant la même instance que object1

print(object1.value) // Affiche : 10
print(object2.value) // Affiche : 10

object2.value = 20 // Modification via object2

print(object1.value) // Affiche : 20 (la modification via object2 a affecté object1)
print(object2.value) // Affiche : 20

La gestion de la mémoire pour les types de référence en Swift est effectuée à l'aide du comptage automatique de référence (ARC).