Avatar ·

Pourquoi choisir une structure (struct) plutôt qu'une classe (class) en Swift ?

Bonjour à tous ! Je viens de commencer à apprendre Swift et une question me taraude. Je vois qu'en Swift il y a à la fois des classes (class) et des structures (struct). À première vue, elles se ressemblent beaucoup : on peut créer des propriétés, des méthodes, des initialiseurs dans les deux. Mais partout on écrit que les structures sont des "value types" (types-valeurs) et les classes des "reference types" (types références). Je ne comprends pas complètement ce que cela signifie en pratique. J'ai écrit un exemple simple. J'ai créé une classe `CarClass` et une structure `CarStruct` avec une propriété `model`. Ensuite, j'ai assigné l'instance de la classe à une nouvelle variable et j'ai modifié le modèle dans la "copie". Le modèle a changé aussi dans l'objet original ! Avec la structure, cela ne s'est pas produit. Voici le code : ```swift class CarClass { var model = "Tesla" } struct CarStruct { var model = "Tesla" } let car1 = CarClass() let car2 = car1 // Ce n'est pas une copie, mais une référence au même objet car2.model = "BMW" print(car1.model) // Affiche "BMW" — l'original a changé ! let structCar1 = CarStruct() var structCar2 = structCar1