val / var
تعريف المتغيّرات val / var
val تعرّف مرجعًا ثابتًا لا يمكن إعادة تعيينه، وvar تعرّف متغيّرًا قابلًا لإعادة التعيين.
val (اختصار value) تنشئ مرجعًا للقراءة فقط — لا يمكن تعيين قيمة جديدة له بعد التهيئة، لكن الكائن الذي يشير إليه قد يبقى قابلًا للتعديل من الداخل (مثل mutableListOf). var (اختصار variable) تسمح بإعادة التعيين في أي وقت.
Kotlin تستنتج النوع تلقائيًّا من القيمة الأولى، فلا حاجة لكتابته صراحة إلا عند الحاجة للوضوح.
الصياغة
val اسم: نوع = قيمة var اسم: نوع = قيمة
📄 مثال
val name = "براء" // النوع String مستنتج var score = 10 score = 15 // مسموح مع var // name = "آخر" // خطأ ترجمة: val لا يُعاد تعيينها val scores = mutableListOf(1, 2) scores.add(3) // مسموح: المرجع ثابت لكن محتوى القائمة قابل للتعديل
أهم النقاط
| العنصر | الوظيفة |
|---|---|
| val | مرجع للقراءة فقط بعد التهيئة الأولى |
| var | متغيّر قابل لإعادة التعيين |
| type inference | استنتاج النوع تلقائيًّا من القيمة الأولى |
💡 نصائح عملية
- فضّل val دائمًا وانتقل لـ var فقط عند الحاجة الفعلية لإعادة التعيين — يقلّل الأخطاء
- val لا تمنع تعديل محتوى كائن قابل للتغيير (مثل MutableList) — تمنع فقط إعادة تعيين المرجع نفسه
⚠️ أخطاء شائعة
- افتراض أن val تجعل الكائن غير قابل للتغيير بالكامل — هي تجمّد المرجع فقط
- محاولة إعادة تعيين val بعد التهيئة تسبب خطأ ترجمة مباشر
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار KOTLIN الكامل بالعربي.