¿Cuál es la diferencia entre const y val en Kotlin? ¿Cuándo usar cada uno?
¡Hola! Empecé a estudiar Kotlin y no logro entender la diferencia entre `const` y `val`. Ambas parecen declarar valores inmutables, pero el compilador se queja cuando intento usar `const` dentro de una función o con algunas expresiones.
Aquí hay un ejemplo que me confunde:
```kotlin
// Esto funciona
val name = "John"
val currentTime = System.currentTimeMillis()
// Esto no funciona - error de compilación
const val name2 = "John"
const val currentTime2 = System.currentTimeMillis() // ¡Error!
```
¿Por qué `const val currentTime2` no compila? Si `val` también es inmutable. Además noté que `const` solo se puede usar a nivel de archivo o dentro de `object`, mientras que `val` se puede usar en cualquier lugar. ¿Cuál es la diferencia profunda aquí? ¿Cuándo debería usar `const` y cuándo simplemente `val`?
Explíquenme, por favor, con ejemplos. ¡Estaré muy agradecido!
<<>>
Diferencia principal: tiempo de evaluación y forma de almacenamiento
const y val ambos crean valores inmutables (