Avatar ·

ما الفرق بين 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 ينشئان قيمًا غير قابلة للتغيير، لكن