Sobes.tech
Junior — Middle

Quelles sont les différences entre les types de valeur et les types de référence en programmation?

sobes.tech IA

Réponse de l'IA

Les types de valeur (value types) et les types de référence (reference types) diffèrent dans leur façon de stocker et de transmettre des données.

  • Les types de valeur sont stockés directement dans la mémoire de la variable. Lors de l'assignation ou du passage, la valeur elle-même est copiée. Les modifications de la copie n'affectent pas l'original. En Swift, les types de valeur incluent les structures (struct), les énumérations (enum) et les tuples.

  • Les types de référence sont stockés dans le tas, et la variable contient une référence à l'objet. Lors de l'assignation, seule la référence est copiée, pas l'objet. Les modifications via une référence se reflètent dans toutes les références. En Swift, ce sont les classes (class).

Exemple:

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

class Person {
    var name: String
    init(name: String) { self.name = name }
}

var p1 = Point(x: 1, y: 2)
var p2 = p1
p2.x = 10
print(p1.x) // 1 — la copie n'a pas changé

var person1 = Person(name: "Alice")
var person2 = person1
person2.name = "Bob"
print(person1.name) // Bob — les deux variables font référence au même objet