ما الفرق بين const و val في Kotlin؟ متى نستخدم كلًا منهما؟
مرحبًا! بدأت تعلم Kotlin ولا أستطيع فهم الفرق بين `const` و `val`. يبدو أن كلاهما يعلن عن قيم غير قابلة للتغيير، لكن المترجم يشتكي عندما أحاول استخدام `const` داخل دالة أو مع بعض التعبيرات.
إليك مثال يربكني:
```kotlin
// هذا يعمل
val name = "John"
val currentTime = System.currentTimeMillis()
// وهذا لا يعمل - خطأ في الترجمة
const val name2 = "John"
const val currentTime2 = System.currentTimeMillis() // خطأ!
```
لماذا لا يتم ترجمة `const val currentTime2`؟ فـ `val` أيضًا غير قابل للتغيير. ولاحظت أيضًا أن `const` يمكن استخدامه فقط على مستوى الملف أو داخل `object`، بينما `val` يمكن استخدامه في أي مكان. ما الفرق الجوهري هنا؟ متى يجب استخدام `const` ومتى نستخدم `val` فقط؟
اشرح لي من فضلك مع أمثلة. سأكون ممتنًا جدًا!
<<>>
الفرق الرئيسي: وقت التقييم وطريقة التخزين
كل من const و val ينشئان قيمًا غير قابلة للتغيير، لكن