0Pricing
Swift Academy · درس

الخصائص والرموز الفرعية

استخدم الخصائص المخزنة lazy، والخصائص المحسوبة مع get/set، ومراقبات الخصائص، والرموز الفرعية للفهرسة المخصّصة.

الخصائص والرموز الفرعية درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

مقدمة

يتناول هذا الدرس الخصائص المتقدمة: الخصائص lazy، والخصائص المحسوبة باستخدام get/set، والمراقبات، إضافةً إلى subscripts المخصصة.

الخاصية lazy

لا تُنشأ الخصائص lazy إلا عند الوصول إليها للمرة الأولى. وهي مفيدة للعمليات المكلفة.

struct DataLoader {
    lazy var data: [Int] = {
        print("Loading...")
        return [1,2,3]
    }()
}
var loader = DataLoader()
print("before access")
print(loader.data)

get/set المحسوبة

تستخدم الخصائص المحسوبة كتل get/set لحساب القيم أو تحديثها.

struct Circle {
    var radius: Double
    var diameter: Double {
        get { return radius * 2 }
        set { radius = newValue / 2 }
    }
}
var c = Circle(radius: 5)
print(c.diameter)  // 10
c.diameter = 20
print(c.radius)    // 10

المراقبات

استخدم willSet وdidSet للاستجابة للتغييرات في الخصائص.

class Account {
    var balance: Double = 0 {
        willSet { print("Will set to", newValue) }
        didSet  { print("Did set from", oldValue) }
    }
}
var a = Account()
a.balance = 50

Subscript

تتيح لك Subscripts تعريف وصول مخصص باستخدام صياغة الأقواس المربعة.

struct TimesTable {
    let multiplier: Int
    subscript(i: Int) -> Int {
        return multiplier * i
    }
}
let three = TimesTable(multiplier: 3)
print(three[4])   // 12

Subscript متعدد المعلمات

يمكن أن تستقبل Subscripts عدة معلمات، مثل مصفوفة لها فهارس للصفوف والأعمدة.

struct Matrix {
    var grid: [[Int]]
    subscript(row: Int, col: Int) -> Int {
        return grid[row][col]
    }
}
let m = Matrix(grid:[[1,2],[3,4]])
print(m[1,0])   // 3

سؤال عن lazy

تحقق سريع: ماذا تفعل الكلمة المفتاحية lazy؟

مراجعة

مراجعة: استخدم lazy للتهيئة المؤجلة، وget/set للخصائص المحسوبة، وwillSet/didSet للمراقبة، وsubscripts للوصول المخصص.

الأسئلة الشائعة

هل درس «الخصائص والرموز الفرعية» مجاني؟

نعم — نص درس «الخصائص والرموز الفرعية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «الخصائص والرموز الفرعية»؟

استخدم الخصائص المخزنة lazy، والخصائص المحسوبة مع get/set، ومراقبات الخصائص، والرموز الفرعية للفهرسة المخصّصة. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «الخصائص والرموز الفرعية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الخصائص والرموز الفرعية
  2. ‏lazy ومراقبات الخصائص
  3. الخصائص المحسوبة باستخدام get/set
  4. الرموز الفرعية للفهرسة المخصّصة
← العودة إلى Swift Academy