Avatar ·

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.