لماذا يجب اختيار الهيكل بدلاً من الكلاس في Swift؟
مرحباً بالجميع! لقد بدأت للتو في تعلم Swift، وحدث لدي بعض الالتباس. أفهم أن كلاً من الهياكل (struct) والفئات (class) يمكن أن تحتوي على خصائص وطرق. يبدو أن الفرق الوحيد هو أن الهياكل هي أنواع قيمة (value types)، بينما الفئات هي أنواع مرجعية (reference types). لكن عملياً، لا أفهم تماماً متى أستخدم أيهما.
إليك مثال. أقوم بتطوير تطبيق بسيط للملاحظات. أنشأت فئة Note:
```swift
class Note {
var title: String
var content: String
init(title: String, content: String) {
self.title = title
self.content = content
}
}
var note1 = Note(title: "مشتريات", content: "شراء حليب")
var note2 = note1
note2.title = "أمور عاجلة"
print(note1.title) // سيطبع "أمور عاجلة" — لم أكن أتوقع هذا!
```
اعتقدت أنني أقوم بإنشاء نسخة، لكن اتضح أن كلا المتغيرين يشيران إلى نفس الكائن. ولهذا، تتغير البيانات في أماكن غير متوقعة. إذا قمت باستبدال `class` بـ `struct`، فإن النسخ سيعمل بشكل صحيح.