3. Valores
• Una vez que un valor es asignado en Scala ya
no puede ser reasignado. A esto se le
denomina Inmutabilidad.
val nombre:tipo = inicialización
Palabra reservada
para definir un valor
4. Inferencia de Tipos
• Scala puede determinar el tipo de un valor
automáticamente basado en su inicialización,
simplificando la definición:
val nombre:tipo = inicialización
No es necesario
especificar el tipo
5. Variables
• Scala también cuenta con las variables
tradicionales, con sintaxis muy similar a los
valores, solo que en el caso de las variables
estas si se pueden reasignar:
var nombre:tipo = inicialización
Palabra reservada
para definir una variable
7. Expresiones y Sentencias
• Las expresiones producen un resultado que puede
ser guardado en un valor o variable y las sentencias
no producen un resultado, pero pueden cambiar un
estado, es decir cambiar la asignación de alguna
variable.
scala > val horas = 10
scala > val minutosPorHora = 60
scala > val minutos = horas * minutosPorHora
Lo que se encuentra del lado derecho
Del signo de asignación (=), es una expresión
8. El tipo Unit
• Para poder expresar la falta de valor se utiliza
el tipo Unit. Es decir cuando una expresión no
regresa nada se utiliza Unit:
scala> val result = println(“hola”)
hola
result: Unit = ()
9. Expresiones Condicionales
• La expresiones condicionales pueden tener las
expresiones if y else. Esta expresion if en su
conjunto es una expresión, lo que significa que
produce un resultado:
scala> if (99 < 100) { 4 } else { 42 }
res0: Int = 4
scala> val resultado = if (99 < 100) { 4 } else { 42 }
result: Int = 4
El REPL crea
La variable res0
11. Expresiones Compuestas
• Las expresiones compuestas están rodeadas por corchetes.
Una expresión compuesta puede contener cualquier numero
de otras expresiones incluso otras expresiones compuestas:
val kg = 80.0
val altura = 1.7
val estatusPeso = {
val imc = kg/(altura*altura)
if (imc < 18.5) "Bajo Peso"
else if (imc < 25) "Peso Normal"
else "Sobrepeso”
}
println(estatusPeso)
*Note que el alcance de imc esta
solo dentro de la expresión donde
fue definida
13. Ejercicios
1. Crear un valor entero (Int)
2. Intenta cambiar el valor. ¿Qué pasó?
3. Crea una variable e inicialízala a entero (Int),
entonces intenta reasiganrala a un doble (Double).
¿Qué pasó?
4. Guarda e imprime un doble (Double), ¿Usaste
inferencia de Tipos?. Intenta declarar el Tipo.
5. ¿Qué pasa si intentas almacenar un 15 en un valor
doble (Double)?
14. Ejercicios
6. Almacena una cadena multilinea
7. ¿Qué pasa si intentamos almacenar la cadena
“tal vez” en un valor del tipo boleano (Boolean)?
8. ¿Qué pasa si se intenta guardar el valor 15.4 en
un valor doble (Double)?
9. Modifica estatusPeso para que regrese Unit en
lugar de String
10.Modifica el programa para que regrese un
pesoIdeal basado en un IMC de 22. Pista:
pesoIdeal = IMC * (estatura * estatura)