En Scala, las constantes son valores inmutables que no cambian durante la ejecución del programa. Para declararlas, se utiliza la palabra clave val
, que define variables inmutables. Además, las constantes suelen estar en mayúsculas por convención para indicar que su valor no debe cambiar.
val
La palabra clave val
se utiliza para declarar valores inmutables en Scala. Una vez asignado un valor a una constante, no puede ser modificado.
Sintaxis:
val NOMBRE_CONSTANTE: Tipo = valor
Ejemplo:
val PI: Double = 3.1416
val MAX_USERS: Int = 1000
object Main extends App {
println(s"El valor de PI es: $PI")
println(s"Máximo número de usuarios: $MAX_USERS")
}
Salida:
El valor de PI es: 3.1416
Máximo número de usuarios: 1000
En Scala, puedes agrupar constantes relacionadas dentro de un objeto. Esto organiza mejor el código y permite un acceso más limpio a las constantes.
Ejemplo:
object Constants {
val APP_NAME: String = "MiAplicación"
val VERSION: String = "1.0.0"
}
object Main extends App {
println(s"Nombre de la aplicación: ${Constants.APP_NAME}")
println(s"Versión: ${Constants.VERSION}")
}
Salida:
Nombre de la aplicación: MiAplicación
Versión: 1.0.0
final
En una clase, puedes declarar constantes utilizando val
y marcándolas como final
para asegurar que no puedan ser sobreescritas por las subclases.
Ejemplo:
class Config {
final val TIMEOUT: Int = 5000
final val BASE_URL: String = "https://api.example.com"
}
object Main extends App {
val config = new Config
println(s"Timeout: ${config.TIMEOUT} ms")
println(s"Base URL: ${config.BASE_URL}")
}
sealed traits
(enumeraciones)
Para listas de constantes relacionadas, como enumeraciones, puedes usar sealed traits
y case objects
.
Ejemplo:
sealed trait Color
object Color {
case object Red extends Color
case object Green extends Color
case object Blue extends Color
}
object Main extends App {
val favoriteColor: Color = Color.Green
println(s"Color favorito: $favoriteColor")
}
1. Usa val para todas las constantes.
2. Organiza las constantes en objetos cuando sean relacionadas.
3. Usa nombres en mayúsculas con guiones bajos para constantes globales.
4. Prefiere objetos singleton (object) para agrupar configuraciones o valores inmutables.
Método | Uso | Ejemplo |
---|---|---|
val
|
Declarar constantes básicas. |
val PI: Double = 3.1416
|
object
|
Agrupar constantes relacionadas. |
object Constants { val APP_NAME = ... }
|
final en clases
|
Constantes dentro de clases, no heredables. |
final val TIMEOUT = 5000
|
sealed traits
|
Definir listas de constantes relacionadas. |
sealed trait Color { case object ... }
|
Para más información, consulta la documentación oficial de Scala.
Jorge García
Fullstack developer