Sobes.tech
Junior — Middle

Quelle est la différence entre les types de données par référence et par valeur dans le langage Swift?

sobes.tech IA

Réponse de l'IA

En Swift, les types de données sont divisés en types par valeur (value types) et types par référence (reference types).

  • Types par valeur (par exemple, structures struct, énumérations enum, tuples) sont copiés lors de l'assignation ou du passage à une fonction. Cela signifie que chaque variable possède sa propre copie indépendante des données.

  • Types par référence (classes class) transmettent une référence au même objet en mémoire lors de l'assignation ou du passage. Les modifications via une référence seront visibles à travers d'autres.

Exemple :

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

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

var p1 = Point(x: 0, y: 0)
var p2 = p1
p2.x = 10
print(p1.x) // 0, car p2 est une copie de p1

var person1 = Person(name: "Alice")
var person2 = person1
person2.name = "Bob"
print(person1.name) // Bob, car person2 et person1 pointent vers le même objet

Ainsi, la différence est que les types par valeur sont copiés, tandis que les types par référence transmettent une référence au même objet.