نبذة عن متغيرات المثيل
النقاط الأساسية:
- عند استدعاء الطريقة
.new الخاصة بالصنف لإنشاء مثيل كائن، تُمرَّر جميع الوسائط إلى الطريقة .initialize لتهيئة حالة المثيل.
- تُسبق أسماء متغيرات المثيل بعلامة
@.
- تكون متغيرات المثيل
nil افتراضيًا حتى يتم إسناد قيمة لها صراحةً.
- متغيرات المثيل خاصة افتراضيًا، وينبغي التعامل معها عبر دوال الجلب ودوال الإسناد.
class Backpack
initialize(owner)
@owner = owner
end
def owner
@owner
end
def owner=(new_owner)
@owner = new_owner
end
end
- الطرق التي ينتهي اسمها بـ
= يعتبرها Ruby طرق إسناد، وتسمح باستخدام صيغة الإسناد على نحو «السكر النحوي»، مثل Backpack.new("Sven").owner = "Ayah".
لاحظ الفراغ بين owner و = بينما اسم الطريقة الفعلي هو owner=.
- يمكن إنشاء دوال الجلب ودوال الإسناد باستخدام الطرق
attr_reader وattr_writer وattr_accessor:
-
attr_reader: إنشاء دوال جلب للرموز المذكورة.
-
attr_writer: إنشاء دوال إسناد للرموز المذكورة.
-
attr_accessor: إنشاء دوال جلب وإسناد للرموز المذكورة.
class Backpack
attr_accessor :owner
initialize(owner)
@owner = owner
end
end
- لماذا نستخدم دوال الجلب ودوال الإسناد بدلًا من متغير المثيل مباشرةً؟
- لو وقع خطأ مطبعي (وهو ما نسميه «typo») في المثال السابق (مثل
@ownar)، لفشل ذلك بصمت، وقد يُدخل bug في النظام.
- أما دوال الجلب ودوال الإسناد فتجعل ذلك صريحًا، وستُطلق خطأً عند وقوع خطأ مطبعي.
المراجع
تهيئة مثيلات الكائنات
متغيرات المثيل