الخصائص الكسولة والمحسوبة
الخصائص الكسولة والمحسوبة
الخصائص الكسولة والمحسوبة درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 1 من أصل 1. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 1 دروس في المجموع.
مقدمة
مرحبًا،
في الدرس السابق، تعلّمنا الخصائص المخزنة. ويمكنكم أيضًا تعريف خصائص كسولة ومحسوبة.
ما رأيناه في القسم السابق هو تخزين بيانات الخصائص المخزنة (Store).
وبالإضافة إلى ذلك، يمكننا تعريف الخصائص على أنها محسوبة أو كسولة.
الخصائص الكسولة
الخصائص الكسولة
عندما لا تكون هناك حاجة إلى إنشاء قيمة الخاصية حتى أول مرة تُستخدم فيها، يمكنكم استخدام خاصية مخزنة كسولة.
عندما لا تُستخدم قيمة الخاصية إلا عند استخدامها للمرة الأولى، يمكننا استخدامها كخاصية مخزنة كسولة. ولذلك، إذا كان إنشاء كائن مكلفًا ولم تكن هناك حاجة إليه في البداية، فسنؤجل إنشاء الكائن إلى أول استخدام له، ونتجنب استهلاك الموارد وخسارة الأداء دون داعٍ. ولجعل الخاصية المخزنة خاصيةً مخزنةً كسولة، نحتاج إلى تمرير المعدِّل lazy.
class Person {
lazy var name: String = "Name"
var age:Int = 0
private var _lastName:String = ""
func profile() -> String {
return "I'm \(self.name) and I'm \(self.age) years old."
}
}
var p = Person()
p.name = "Coddy"
p.age = 10
print(p.profile())
الخصائص المحسوبة
الخصائص المحسوبة
تتلقى الخصائص المحسوبة إدخالًا وتحسب النتيجة الجديدة. وقد يبدو للوهلة الأولى أنها تعمل مثل الدوال. ومع ذلك، تُستخدم الخصائص المحسوبة باستخدام صياغة النقطة، تمامًا مثل الخصائص.
في المثال أدناه، يمكننا فهم الفرق بين الطريقة والخاصية المحسوبة بشكل أفضل.
متابعة
بالإضافة إلى الخصائص المخزنة، يمكن للفئات والبنى والتعدادات تعريف خصائص محسوبة لا تخزّن قيمة فعلية.
وبدلًا من ذلك، توفر getter وsetter اختياريًا لاسترداد خصائص وقيم أخرى وتعيينها بصورة غير مباشرة.
مثال
إذا عرّفتم get { } داخل إعلان الخاصية، فستجعلون هذه الخاصية محسوبة. ولا يمكن أن تكون لها قيمة ابتدائية، إذ ستستدعي دائمًا الدالة get{} المعلنة في الخاصية عند الوصول إليها.
class Person {
lazy var name: String = "Name"
var age:Int = 0
private var _lastName:String = ""
var lastName:String{
get {
return _lastName
}
set {
_lastName = newValue
}
}
var profile:String{
get{
return "I'm \(self.name) and I'm \(self.age) years old."
}
}
}
var p = Person()
p.name = "Matt"
p.age = 40
/*
Normally, if it was a method, we would call it with the p.profile () method.
However, since it is propery, it was enough to call it with .profile.
*/
p.profileتهانينا
تهانينا 🎉
تعلّمنا في هذا الدرس الخصائص الكسولة والمحسوبة في Swift.
نلتقي في الدرس التالي.

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