Kotlin में const और val में क्या अंतर है? कब क्या उपयोग करें?
नमस्ते! मैंने Kotlin सीखना शुरू किया है और मुझे `const` और `val` के बीच अंतर समझ नहीं आ रहा है। दोनों ही अपरिवर्तनीय मान घोषित करते हैं, लेकिन जब मैं किसी function के अंदर या कुछ expressions के साथ `const` का उपयोग करने की कोशिश करता हूँ तो compiler error देता है।
यहाँ एक उदाहरण है जो मुझे भ्रमित करता है:
```kotlin
// यह काम करता है
val name = "John"
val currentTime = System.currentTimeMillis()
// लेकिन यह काम नहीं करता - compilation error
const val name2 = "John"
const val currentTime2 = System.currentTimeMillis() // Error!
```
`const val currentTime2` compile क्यों नहीं होता? आखिर `val` भी तो अपरिवर्तनीय है। और मैंने देखा कि `const` का उपयोग केवल file level या `object` के अंदर ही किया जा सकता है, जबकि `val` का उपयोग कहीं भी किया जा सकता है। इसका गहरा अंतर क्या है? `const` का उपयोग कब करना चाहिए और कब सिर्फ `val` का?
कृपया उदाहरणों के साथ समझाएँ। बहुत आभारी रहूँगा!
<<>>
मुख्य अंतर: गणना का समय और संग्रहण का तरीका
const और val दोनों ही अपरिवर्तनीय मान बनाते हैं, लेकिन इनमें मुख्य अंतर यह है कि const compile-time constant होता है, जबकि val runtime पर भी initialize हो सकता है। const का मान compile time पर ही ज्ञात होना चाहिए और इसे केवल primitive types या String के साथ ही उपयोग किया जा सकता है। val का मान runtime पर किसी function call या expression से भी आ सकता है।