Avatar ·

Constantes en Kotlin: formas correctas de declaración y uso

¡Hola a todos! Acabo de empezar a aprender Kotlin después de Java, y me confunde la cuestión de declarar constantes. En Java solía escribir `public static final String MY_CONST = "value";`, y en Kotlin veo varios enfoques diferentes y no entiendo cuál es el correcto. Por ejemplo, veo que se puede escribir: ```kotlin class MyClass { companion object { val MY_CONST = "value" } } ``` O incluso simplemente: ```kotlin val MY_CONST = "value" ``` Pero en algunas guías hablan de `const val`, y en otras dicen que `const` solo funciona con primitivos. También estoy confundido con `object` y `companion object` — ¿cuándo usar cada uno? ¿Y es necesario usar `companion object` como análogo de `static final` de Java, o es un antipatrón? Por favor, indíquenme qué enfoque se considera correcto e idiomático para Kotlin. Quiero escribir "correctamente" desde el principio para no tener que rehacerlo después. Me interesa especialmente la diferencia entre `val` y `const val`, y dónde es mejor almacenar las constantes — en la clase, en un archivo separado, etc.