لماذا يجب اختيار الهيكل (struct) بدلاً من الفئة (class) في Swift؟
مرحباً بالجميع! لقد بدأت للتو في تعلم Swift، ويقلقني سؤال واحد. أرى أن في Swift هناك فئات (class) وهياكل (struct). للوهلة الأولى، تبدو متشابهة جداً: في كليهما يمكن إنشاء خصائص، دوال، ومهيئات. لكن في كل مكان يُكتب أن الهياكل هي "value types" (أنواع قيمة)، والفئات هي "reference types" (أنواع مرجعية). لا أفهم تماماً ما يعنيه هذا عملياً.
كتبت مثالاً بسيطاً. أنشأت فئة `CarClass` وهيكل `CarStruct` بخاصية واحدة `model`. ثم قمت بتعيين نسخة من الفئة إلى متغير جديد وغيرت النموذج في "النسخة". تغير النموذج أيضاً في الكائن الأصلي! أما مع الهيكل فلم يحدث ذلك. إليك الكود:
```swift
class CarClass {
var model = "Tesla"
}
struct CarStruct {
var model = "Tesla"
}
let car1 = CarClass()
let car2 = car1 // هذه ليست نسخة، بل مرجع لنفس الكائن
car2.model = "BMW"
print(car1.model) // سيطبع "BMW" — الأصلي تغير!
let structCar1 = CarStruct()
var structCar2 = structCar1 // هذه نسخة حقيقية
structCar2.model = "BMW"
print(structCar1.model) // سيظل يطبع "Tesla" — الأصلي لم يتغير
```