May 20, 2024

val

La palabra reservada val se utiliza para declarar valores inmutables. Una vez que se asigna un valor a una variable val, no se puede cambiar. Es similar a una constante en otros lenguajes de programa

val x = 5

En el ejemplo anterior, se crea una variable x con un valor inicial de 5. Como se trata de una variable val, no se puede cambiar posteriormente.

var

La palabra reservada var se utiliza para declarar variables mutables. Una vez que se asigna un valor a una variable var, se puede cambiar en cualquier momento.

var x = 5
x = 10

En el ejemplo anterior, se crea una variable x con un valor inicial de 5. Luego, se cambia su valor a 10.

def

La palabra reservada def se utiliza para definir funciones. Las funciones son bloques de código que se pueden llamar con diferentes argumentos. La sintaxis general de una función es la siguiente:

def functionName(arg1: type, arg2: type, ...): returnType = {
  // Cuerpo de la función
}

Por ejemplo, la siguiente función toma dos argumentos enteros y devuelve su suma:

def sum(a: Int, b: Int): Int = {
  a + b
}

lazy val

La palabra reservada lazy val se utiliza para declarar valores perezosos (lazy). Esto significa que el valor se calculará solo cuando se acceda a él por primera vez. Los valores perezosos son útiles cuando el cálculo del valor puede ser costoso y no se necesita inmediatamente.

lazy val x = {
  println("Calculando el valor de x")
  5
}

En el ejemplo anterior, se declara una variable x que se calcula perezosamente. La primera vez que se accede a la variable x, se imprimirá “Calculando el valor de x” y se calculará el valor 5. Si se accede a la variable x nuevamente, el valor calculado anteriormente se devolverá sin volver a calcularlo.

En resumen, las palabras reservadas val, var, def y lazy val se utilizan para declarar valores inmutables, variables mutables, funciones y valores perezosos respectivamente en Scala. Es importante entender la diferencia entre estos tipos de variables y cómo se pueden utilizar para escribir un código Scala claro y conciso.

Leave a Reply

Your email address will not be published. Required fields are marked *