Sobes.tech
Junior

Que stocke exactement la variable lorsque nous créons un objet de type value?

sobes.tech IA

Réponse de l'IA

Lorsque nous créons un objet de type valeur (structure, énumération, tuple en Swift), la variable stocke une copie des données de cet objet directement en mémoire. L'affectation ou le passage de cet objet par paramètre entraîne une copie de son contenu.

Exemples:

struct Point {
    var x: Int
    var y: Int
}

var p1 = Point(x: 1, y: 2) // La variable p1 stocke une copie des données (x=1, y=2)
var p2 = p1              // p2 reçoit une copie des données de p1. Ce sont des copies indépendantes.

p1.x = 10                // Se modifie uniquement p1.x
print(p2.x)              // Affichera 1, car p2 n'a pas changé

Comparaison avec le type de référence (classe):

Caractéristique Type de Valeur (structure, enum) Type de Référence (classe)
Ce qui est stocké dans la variable Copie des données de l'objet Référence à l'objet en mémoire
Affectation / Transmission Copie des données Copie de la référence (pointe vers le même objet)
Modification Affecte uniquement la copie courante Affecte l'objet pointé par la référence (peut influencer d'autres variables référant au même objet)