Avatar ·

¿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 (