0Pricing
Swift Academy · درس

‏lazy ومراقبات الخصائص

استخدم الخصائص المخزنة lazy لتأجيل العمل، وراقب التغييرات على الخصائص المخزنة باستخدام willSet/didSet.

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

نظرة عامة

يركز هذا الدرس على عنصرين أساسيين: الخصائص المخزنة lazy ومراقبي الخصائص (willSet/didSet).

الخاصية lazy

تؤجل lazy الإنشاء حتى أول وصول. ويفيد ذلك في العمليات المكلفة أو عندما تكون هناك حاجة إلى self.

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

lazy + self

يمكن لـالأصناف استخدام lazy للوصول إلى القيم المعتمدة على self بعد التهيئة.

class CacheOwner {
    let name: String
    lazy var hello: String = "Hi, " + name  // uses self safely after init
    init(name: String) { self.name = name }
}
let co = CacheOwner(name: "Ada")
print(co.hello)

مراقبو الخصائص

يعمل المراقبون قبل تغييرات الخاصية المخزنة وبعدها. استخدم newValue وoldValue لمعرفة السياق.

struct Counter {
    var value: Int = 0 {
        willSet { print("will set to", newValue) }
        didSet  { print("did set from", oldValue) }
    }
}
var c = Counter()
c.value = 5
c.value = 9

تقييد القيم باستخدام didSet

استخدم didSet لتطبيع القيم أو تقييدها بعد التعيين.

struct Score {
    var raw: Int = 0 {
        didSet {
            if raw < 0 { raw = 0 }
            if raw > 100 { raw = 100 }
        }
    }
}
var s = Score()
s.raw = 120     // clamped to 100
print(s.raw)
s.raw = -5      // clamped to 0
print(s.raw)

ملاحظات

ملاحظات:

  • يعمل lazy مع الخصائص المخزنة من نوع var فقط.
  • ينطبق المراقبون على الخصائص المخزنة؛ أما الخصائص المحسوبة فتستخدم منطق get/set بدلًا من ذلك.
  • لا يُستدعى المراقبون أثناء التهيئة قبل أن تصبح مساحة التخزين جاهزة.

معنى lazy

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

مراجعة

مراجعة: استخدم lazy لتأجيل الإعداد المكلف، وwillSet/didSet للاستجابة لتغييرات الخصائص المخزنة باستخدام قواعد بسيطة.

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

هل درس «‏lazy ومراقبات الخصائص» مجاني؟

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

ماذا ستتعلم في «‏lazy ومراقبات الخصائص»؟

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

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

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

كم من الوقت يستغرق درس «‏lazy ومراقبات الخصائص»؟

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

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

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

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

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