تخطَّ إلى المحتوى

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 الكامل بالعربي.