Junior — Middle
Quelles sont les différences lors de la copie de données pour les types de valeur et les types de référence?
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 la façon dont la copie des données est effectuée :
- Types de valeur : lors de la copie, une copie complète et indépendante des données est créée. Les modifications dans la copie n'affectent pas l'original.
- Types de référence : lors de la copie, la référence au même objet en mémoire est copiée. Les modifications via une référence se reflètent dans toutes.
Par exemple, sur iOS, les structures (struct) sont des types de valeur, et les classes (class) sont des types de référence.
Exemple en Swift :
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 0, y: 0)
var p2 = p1
p2.x = 10
// p1.x == 0, p2.x == 10 — copies indépendantes
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1 = Person(name: "Иван")
var person2 = person1
person2.name = "Пётр"
// person1.name == "Пётр" — ambas referencias a un mismo objeto