Was ist der Unterschied zwischen const und val in Kotlin? Wann verwendet man was?
Hallo! Ich habe angefangen, Kotlin zu lernen und verstehe den Unterschied zwischen `const` und `val` nicht ganz. Beide scheinen unveränderliche Werte zu deklarieren, aber der Compiler meckert, wenn ich versuche, `const` innerhalb einer Funktion oder mit bestimmten Ausdrücken zu verwenden.
Hier ist ein Beispiel, das mich verwirrt:
```kotlin
// Das funktioniert
val name = "John"
val currentTime = System.currentTimeMillis()
// Das funktioniert nicht - Compiler-Fehler
const val name2 = "John"
const val currentTime2 = System.currentTimeMillis() // Fehler!
```
Warum lässt sich `const val currentTime2` nicht kompilieren? `val` ist doch auch unveränderlich. Außerdem habe ich bemerkt, dass `const` nur auf Dateiebene oder innerhalb eines `object` verwendet werden kann, während `val` überall verwendet werden kann. Was ist der grundlegende Unterschied? Wann sollte man `const` und wann einfach `val` verwenden?
Erklärt es mir bitte.