تخطَّ إلى المحتوى

🦅 شرح Swift

الهياكل بعمق (Structs)

الدرس 15 من 25· ⏱ 1 دقائق قراءة

تعريف هيكل

struct Point {
    var x: Int
    var y: Int

    func describe() -> String {
        return "(\(x), \(y))"
    }
}

let p = Point(x: 3, y: 4)   // باني تلقائي
print(p.describe())

💡 Swift يولّد بانيًا (memberwise initializer) للهياكل تلقائيًّا.

نوع قيمي (Value Type)

الهياكل تُنسَخ عند الإسناد أو التمرير:

var a = Point(x: 1, y: 1)
var b = a          // نسخة مستقلّة
b.x = 99
print(a.x)         // 1 (لم يتأثّر)

mutating

الطرق التي تعدّل خصائص الهيكل تحتاج mutating:

struct Counter {
    var count = 0
    mutating func increment() {
        count += 1
    }
}
var c = Counter()
c.increment()

متى تستخدم struct؟

Apple توصي بتفضيل struct على class افتراضيًّا (أبسط وأأمن) — استخدم class عند الحاجة للمرجعية أو الوراثة.

🎯 التالي: الأصناف بعمق.

هل كان هذا الدرس مفيدًا؟