View
67
Download
0
Embed Size (px)
Citation preview
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
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
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
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 derechoDel signo de asignación (=), es una expresión
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 = ()
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 creaLa variable res0
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.0val altura = 1.7val 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
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)?
Ejercicios
6. Almacena una cadena multilinea7. ¿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 String10.Modifica el programa para que regrese un
pesoIdeal basado en un IMC de 22. Pista: pesoIdeal = IMC * (estatura * estatura)