scala 1

14
Introducción a Scala Meetup 23 de Enero de 2015

Upload: abel-alejandro-coronado-iruegas

Post on 21-Jul-2015

64 views

Category:

Technology


0 download

TRANSCRIPT

Introducción a Scala

Meetup 23 de Enero de 2015

VALORES, TIPOS Y VARIABLES

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 CONDICIONALES

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

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

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)