En Kotlin, las constantes son valores inmutables que no cambian durante la ejecución del programa. Existen dos formas principales para declararlas: usando las palabras clave const
o val
.
const
La palabra clave const
se utiliza para declarar constantes en tiempo de compilación. Estas deben ser declaradas como propiedades de nivel superior o dentro de objetos y deben estar inicializadas con valores literales (números, cadenas, etc.).
Sintaxis:
const val NOMBRE_CONSTANTE = VALOR
Ejemplo:
const val PI = 3.1416
const val APP_NAME = "MiAplicación"
fun main() {
println("Valor de PI: $PI")
println("Nombre de la aplicación: $APP_NAME")
}
Salida:
Valor de PI: 3.1416
Nombre de la aplicación: MiAplicación
val
Si el valor no es conocido en tiempo de compilación pero no cambiará después de su inicialización, se usa val
. Esto se aplica, por ejemplo, a valores calculados en tiempo de ejecución.
Sintaxis:
val nombreConstante = valor
Ejemplo:
fun main() {
val fechaActual = System.currentTimeMillis()
println("Fecha actual en milisegundos: $fechaActual")
}
En este caso, aunque fechaActual
es inmutable, su valor no es conocido hasta que se ejecuta el programa.
const
y val
Característica |
const
|
val
|
---|---|---|
Tiempo de inicialización | En tiempo de compilación. | En tiempo de ejecución. |
Valor asignable | Solo valores literales. | Puede ser cualquier expresión. |
Contexto de uso | Solo en nivel superior u objetos. | Puede usarse en cualquier lugar. |
Inmutabilidad | Es inmutable. | También es inmutable. |
Las constantes suelen agruparse en un objeto para organizarlas mejor.
Ejemplo:
object Config {
const val BASE_URL = "https://api.ejemplo.com"
const val TIMEOUT = 5000
}
fun main() {
println("URL base: ${Config.BASE_URL}")
println("Tiempo de espera: ${Config.TIMEOUT} ms")
}
Puedes declarar constantes dentro de clases utilizando companion object
para asociarlas a la clase.
Ejemplo:
class AppConfig {
companion object {
const val VERSION = "1.0.0"
const val AUTHOR = "Desarrollador"
}
}
fun main() {
println("Versión: ${AppConfig.VERSION}")
println("Autor: ${AppConfig.AUTHOR}")
}
Para más información, consulta la documentación oficial de Kotlin.
Jorge García
Fullstack developer