SlideShare uma empresa Scribd logo
1 de 14
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 derecho
Del 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 crea
La 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.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
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 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)

Mais conteúdo relacionado

Mais procurados

UNIDAD 6. TRANSFORMADA LAPLACE
UNIDAD 6. TRANSFORMADA LAPLACEUNIDAD 6. TRANSFORMADA LAPLACE
UNIDAD 6. TRANSFORMADA LAPLACEedvinogo
 
5. ecuaciones cap 5 (1)
5. ecuaciones cap 5 (1)5. ecuaciones cap 5 (1)
5. ecuaciones cap 5 (1)lausamy
 
Tipo de datos
Tipo de datosTipo de datos
Tipo de datosellicenia
 
Java script estructuras_datos
Java script estructuras_datosJava script estructuras_datos
Java script estructuras_datosjcremiro
 

Mais procurados (7)

UNIDAD 6. TRANSFORMADA LAPLACE
UNIDAD 6. TRANSFORMADA LAPLACEUNIDAD 6. TRANSFORMADA LAPLACE
UNIDAD 6. TRANSFORMADA LAPLACE
 
Limite utp
Limite utpLimite utp
Limite utp
 
Formas indetermina nelson
Formas indetermina nelsonFormas indetermina nelson
Formas indetermina nelson
 
5. ecuaciones cap 5 (1)
5. ecuaciones cap 5 (1)5. ecuaciones cap 5 (1)
5. ecuaciones cap 5 (1)
 
Tipo de datos
Tipo de datosTipo de datos
Tipo de datos
 
Java script estructuras_datos
Java script estructuras_datosJava script estructuras_datos
Java script estructuras_datos
 
Estructuras PseInt
Estructuras PseIntEstructuras PseInt
Estructuras PseInt
 

Destaque

Revelando los secretos de las redes sociales, Universidad Autónoma de Aguasca...
Revelando los secretos de las redes sociales, Universidad Autónoma de Aguasca...Revelando los secretos de las redes sociales, Universidad Autónoma de Aguasca...
Revelando los secretos de las redes sociales, Universidad Autónoma de Aguasca...Abel Alejandro Coronado Iruegas
 
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014Abel Alejandro Coronado Iruegas
 
Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Abel Alejandro Coronado Iruegas
 
APIDays - API Design Workshop
APIDays - API Design WorkshopAPIDays - API Design Workshop
APIDays - API Design WorkshopRestlet
 
Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8superserch
 
Patterns and antipatterns in Docker image lifecycle as was presented at Scale...
Patterns and antipatterns in Docker image lifecycle as was presented at Scale...Patterns and antipatterns in Docker image lifecycle as was presented at Scale...
Patterns and antipatterns in Docker image lifecycle as was presented at Scale...Baruch Sadogursky
 

Destaque (20)

PresentacionParaINFOTEC
PresentacionParaINFOTECPresentacionParaINFOTEC
PresentacionParaINFOTEC
 
Realidades y Sueños de Big Data en México
Realidades y Sueños de Big Data en MéxicoRealidades y Sueños de Big Data en México
Realidades y Sueños de Big Data en México
 
INEGI ESS big data workshop
INEGI ESS big data workshopINEGI ESS big data workshop
INEGI ESS big data workshop
 
Big data taller inegi sedesol
Big data taller inegi sedesolBig data taller inegi sedesol
Big data taller inegi sedesol
 
¿Qué es big data?
¿Qué es big data?¿Qué es big data?
¿Qué es big data?
 
Revelando los secretos de las redes sociales, Universidad Autónoma de Aguasca...
Revelando los secretos de las redes sociales, Universidad Autónoma de Aguasca...Revelando los secretos de las redes sociales, Universidad Autónoma de Aguasca...
Revelando los secretos de las redes sociales, Universidad Autónoma de Aguasca...
 
Revelando los secretos de twitter en México sg virtual
Revelando los secretos de twitter en México sg virtualRevelando los secretos de twitter en México sg virtual
Revelando los secretos de twitter en México sg virtual
 
Anatomía de un proyecto de Big Data
Anatomía de un proyecto de Big DataAnatomía de un proyecto de Big Data
Anatomía de un proyecto de Big Data
 
Geo Big Data 2015
Geo Big Data 2015 Geo Big Data 2015
Geo Big Data 2015
 
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
Big Data, Revelando los secretos de twitter, CIMAT Zacatecas 2014
 
Revelando los secretos de las redes sociales
Revelando los secretos de las redes socialesRevelando los secretos de las redes sociales
Revelando los secretos de las redes sociales
 
Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014
 
APIDays - API Design Workshop
APIDays - API Design WorkshopAPIDays - API Design Workshop
APIDays - API Design Workshop
 
Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8
 
Google mesa
Google mesaGoogle mesa
Google mesa
 
Apache spark meetup
Apache spark meetupApache spark meetup
Apache spark meetup
 
Que es big data huejutla uaeh
Que es big data huejutla uaehQue es big data huejutla uaeh
Que es big data huejutla uaeh
 
Big data lead colmex
Big data lead colmexBig data lead colmex
Big data lead colmex
 
Patterns and antipatterns in Docker image lifecycle as was presented at Scale...
Patterns and antipatterns in Docker image lifecycle as was presented at Scale...Patterns and antipatterns in Docker image lifecycle as was presented at Scale...
Patterns and antipatterns in Docker image lifecycle as was presented at Scale...
 
Explorando Big Data y Ciencia de Datos con GPUs
Explorando Big Data y Ciencia de Datos con GPUsExplorando Big Data y Ciencia de Datos con GPUs
Explorando Big Data y Ciencia de Datos con GPUs
 

Semelhante a Scala 1

Función de buscar si
Función de buscar siFunción de buscar si
Función de buscar siRoba_Pazmio
 
ESTRUCTURAS REPETITIVAS PROGRAMACION.pptx
ESTRUCTURAS REPETITIVAS PROGRAMACION.pptxESTRUCTURAS REPETITIVAS PROGRAMACION.pptx
ESTRUCTURAS REPETITIVAS PROGRAMACION.pptxArisbethBernalSalina
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
Conceptos Generales
Conceptos GeneralesConceptos Generales
Conceptos Generalesbosaro
 
Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc X
 
Tema 5 arreglos y cadenas por gio
Tema 5   arreglos y cadenas por gioTema 5   arreglos y cadenas por gio
Tema 5 arreglos y cadenas por gioRobert Wolf
 
C2 fundamentos de java v2
C2 fundamentos de java v2C2 fundamentos de java v2
C2 fundamentos de java v2Mariano Galvez
 
Programaciòn Estructurada
Programaciòn EstructuradaProgramaciòn Estructurada
Programaciòn EstructuradaFernanda-Guzman
 
86 Php. Modificar Registros
86 Php. Modificar Registros86 Php. Modificar Registros
86 Php. Modificar RegistrosJosé M. Padilla
 
Introduccion matlab
Introduccion matlabIntroduccion matlab
Introduccion matlabgrupo6eda
 
Informatica 2
Informatica 2Informatica 2
Informatica 2Jenthefer
 

Semelhante a Scala 1 (20)

Semana9b Vbr
Semana9b VbrSemana9b Vbr
Semana9b Vbr
 
Aprendiendo de la sintaxiss
Aprendiendo de la sintaxissAprendiendo de la sintaxiss
Aprendiendo de la sintaxiss
 
Función de buscar si
Función de buscar siFunción de buscar si
Función de buscar si
 
SELECT BASICO _
SELECT BASICO _  SELECT BASICO _
SELECT BASICO _
 
ESTRUCTURAS REPETITIVAS PROGRAMACION.pptx
ESTRUCTURAS REPETITIVAS PROGRAMACION.pptxESTRUCTURAS REPETITIVAS PROGRAMACION.pptx
ESTRUCTURAS REPETITIVAS PROGRAMACION.pptx
 
Instrucciones basicas
Instrucciones basicasInstrucciones basicas
Instrucciones basicas
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Conceptos Generales
Conceptos GeneralesConceptos Generales
Conceptos Generales
 
Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)
 
Tema 10
Tema 10Tema 10
Tema 10
 
Tema 5 arreglos y cadenas por gio
Tema 5   arreglos y cadenas por gioTema 5   arreglos y cadenas por gio
Tema 5 arreglos y cadenas por gio
 
C2 fundamentos de java v2
C2 fundamentos de java v2C2 fundamentos de java v2
C2 fundamentos de java v2
 
Seminario 5
Seminario 5Seminario 5
Seminario 5
 
4 variables, arreglos, estructuras y enum
4 variables, arreglos, estructuras y enum4 variables, arreglos, estructuras y enum
4 variables, arreglos, estructuras y enum
 
Visaul
VisaulVisaul
Visaul
 
Programaciòn Estructurada
Programaciòn EstructuradaProgramaciòn Estructurada
Programaciòn Estructurada
 
86 Php. Modificar Registros
86 Php. Modificar Registros86 Php. Modificar Registros
86 Php. Modificar Registros
 
Introduccion matlab
Introduccion matlabIntroduccion matlab
Introduccion matlab
 
Informatica 2
Informatica 2Informatica 2
Informatica 2
 
ensayo unidad 4. luis.pdf
ensayo unidad 4. luis.pdfensayo unidad 4. luis.pdf
ensayo unidad 4. luis.pdf
 

Mais de Abel Alejandro Coronado Iruegas

Integrating eo with official statistics using machine learning in mexico geo ...
Integrating eo with official statistics using machine learning in mexico geo ...Integrating eo with official statistics using machine learning in mexico geo ...
Integrating eo with official statistics using machine learning in mexico geo ...Abel Alejandro Coronado Iruegas
 
Analisis del Sentimiento en el Estado de Animo de los Tuiteros en Mexico
Analisis del Sentimiento en el Estado de Animo de los Tuiteros en MexicoAnalisis del Sentimiento en el Estado de Animo de los Tuiteros en Mexico
Analisis del Sentimiento en el Estado de Animo de los Tuiteros en MexicoAbel Alejandro Coronado Iruegas
 
Ejemplos de Proyectos de Ciencia de Datos y Big Data en el INEGI
Ejemplos de Proyectos de Ciencia de Datos y Big Data en el INEGIEjemplos de Proyectos de Ciencia de Datos y Big Data en el INEGI
Ejemplos de Proyectos de Ciencia de Datos y Big Data en el INEGIAbel Alejandro Coronado Iruegas
 

Mais de Abel Alejandro Coronado Iruegas (16)

Mobility Master Class.pdf
Mobility Master Class.pdfMobility Master Class.pdf
Mobility Master Class.pdf
 
Live UAEMex Cubo de Datos Geoespaciales de Mexico
Live UAEMex Cubo de Datos Geoespaciales de MexicoLive UAEMex Cubo de Datos Geoespaciales de Mexico
Live UAEMex Cubo de Datos Geoespaciales de Mexico
 
Cubo de datos uaemex
Cubo de datos uaemexCubo de datos uaemex
Cubo de datos uaemex
 
Geo Big Data 4 Datalab
Geo Big Data 4 DatalabGeo Big Data 4 Datalab
Geo Big Data 4 Datalab
 
Catedra INEGI Big Data en IBERO
Catedra INEGI Big Data en IBEROCatedra INEGI Big Data en IBERO
Catedra INEGI Big Data en IBERO
 
Integrating eo with official statistics using machine learning in mexico geo ...
Integrating eo with official statistics using machine learning in mexico geo ...Integrating eo with official statistics using machine learning in mexico geo ...
Integrating eo with official statistics using machine learning in mexico geo ...
 
Machine learning and Satellite Images
Machine learning and Satellite ImagesMachine learning and Satellite Images
Machine learning and Satellite Images
 
El Cubo de Datos Geoespaciales de Mexico
El Cubo de Datos Geoespaciales de MexicoEl Cubo de Datos Geoespaciales de Mexico
El Cubo de Datos Geoespaciales de Mexico
 
No Sql
No SqlNo Sql
No Sql
 
Cubo de Datos Geoespaciales de Mexico
Cubo de Datos Geoespaciales de MexicoCubo de Datos Geoespaciales de Mexico
Cubo de Datos Geoespaciales de Mexico
 
Congreso UAA 2018 Animo Tuitero 2 0
Congreso UAA 2018 Animo Tuitero 2 0Congreso UAA 2018 Animo Tuitero 2 0
Congreso UAA 2018 Animo Tuitero 2 0
 
Analisis del Sentimiento en el Estado de Animo de los Tuiteros en Mexico
Analisis del Sentimiento en el Estado de Animo de los Tuiteros en MexicoAnalisis del Sentimiento en el Estado de Animo de los Tuiteros en Mexico
Analisis del Sentimiento en el Estado de Animo de los Tuiteros en Mexico
 
Ejemplos de Proyectos de Ciencia de Datos y Big Data en el INEGI
Ejemplos de Proyectos de Ciencia de Datos y Big Data en el INEGIEjemplos de Proyectos de Ciencia de Datos y Big Data en el INEGI
Ejemplos de Proyectos de Ciencia de Datos y Big Data en el INEGI
 
Big data big opportunities
Big data big opportunitiesBig data big opportunities
Big data big opportunities
 
Taller de Big Data y Ciencia de Datos en COLMEX dia 2
Taller de Big Data y Ciencia de Datos en COLMEX dia 2Taller de Big Data y Ciencia de Datos en COLMEX dia 2
Taller de Big Data y Ciencia de Datos en COLMEX dia 2
 
Taller de Big Data y Ciencia de Datos en COLMEX dia 1
Taller de Big Data y Ciencia de Datos en COLMEX dia 1 Taller de Big Data y Ciencia de Datos en COLMEX dia 1
Taller de Big Data y Ciencia de Datos en COLMEX dia 1
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 

Último (10)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Scala 1

  • 1. Introducción a Scala Meetup 23 de Enero de 2015
  • 2. VALORES, TIPOS Y VARIABLES
  • 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)