SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Capítulo 2: Definición de
datos
Elaborado por Gary Briceño
http://Gary.pe
Definición: Literal, Valor y Tipo
• Literal
• Son los datos que aparecen directamente en el código, cómo los números, caracteres o un
texto
• Ejemplo: 5, A, “Hola Mundo”
• Valor
• Un valor es una unidad de almacenamiento inmutable.
• Se puede asignar un valor cuando es asignado, pero no puede ser reasignado
• Tipo
• Es el tipo de dato con el cual esta trabajando, una definición o clasificación de la data.
• Todos los datos en Scala corresponden a un tipo específico
• Todas los Tipos en Scala son definidos como clases con métodos que operan sobre ellas
Garbage Collector
• Similar al trabajo que realiza en Java
• La data almacenada en los valores es automáticamente liberada por
el Garbage Collector de la máquina virtual cuando esta ya no es
utilizada.
• No hay necesidad de liberar esta información en forma manual
Sintaxis
val <name>: <tipo> = <literal>;
En este ejemplo se han definido tres tipos de
variables:
Una de ellas nombre hola, de tipo String y con
valor “Hello World!”.
Scala REPL
• Cuando se define una variable, ¿Qué sucede?
• Read-Evaluate-Print-Loop
• Cuando se define una variable, se lee la definición del valor, se evalúa y se
reimprime una vez confirmado el valor.
• El valor resultado de una operación, pasa a una nueva variable
Valores
• Los valores son inmutables, los tipos almacenan unidades y son el
método por defecto para guardar un valor.
• Se puede definir un nuevo valor utilizando la palabra reservada val.
val <name> [: <tipo> ] = <data>;
• Los valores requiere un nombre y asignarle un dato, pero no
requieren del dato explicito.
• Si no se asigna un tipo, el compilador de S
Valores:
Ejemplos sin especificar el tipo:
Inferencia de tipo
• Scala cuenta con la inferencia de tipo, la cual no obliga a definir el tipo
de la variable, y Scala infiere el tipo de la misma
• Esta es una ayuda al escribir código pues elimina la necesidad de
escribir el tipo de dato al escribir el código.
• Se debe utilizar cuando este no disminuye la facilidad de lectura de su
código
• En algunos casos será mejor incluir el tipo de dato en forma explicita, a fin de
mejorar la lectura del código
Variables
• Por lo general una variable hace referencia a un identificador que se corresponde
con un espacio de memoria, en donde el valor puede ser almacenado u obtenido.
De la misma forma que es reservado, se puede asignar nuevos valores una y otra
vez.
• Esto funciona en la mayoría de lenguajes como Java, Python, C y Ruby
• Variables son dinámicas, mutables y reasignables
• En Scala se prefieren valores a variables, debido a la estabilidad y escalabilidad
que brindan al programa.
• Cuando asigna un valor, este mantiene el mismo valor durante la ejecución del programa
• Finalmente, cuando trabaja con programas multi hilos o concurrentes, los valores inmutables
hacen más estable el sistema
Nombres
• En Scala para las variables, se pueden utilizar letras, números y un
rango de caracteres especiales
• Se pueden utilizar caracteres como * y +, así como símbolos φ
• Se pueden utilizar todos los caracteres de u0020-007F y Unicode a excepción
de [] o punto (.)
Reglas de nombres
• Una letra seguida de cero o más letras y dígitos
• Una letra seguida de cero o más letras y dígitos, luego guion bajo (_),
luego letras y dígitos
• Uno o más operadores de caracteres
• Los nombres no pueden empezar con números
Tipos
• Tiene tipos numéricos(Int y Double) y no numéricos (String), para
definir valores y variables
• Estos tipos son la base para construir otros objetos y collections
• En Scala no hay el concepto de datos primitivos
Tipos númericos
Name Descripción Tamaño Mínimo Máximo
Byte Entero con signo 1 Byte -127 128
Short Entero con signo 2 Bytes -32768 32767
Int Entero con signo 4 Bytes - 2 a la 31 2 a la 31 – 1
Long Entero con signo 8 Bytes - 2 a la 63 2 a la 63 – 1
Float Punto flotante con signo 4 Bytes Nd Nd
Double Punto flotante con signo 8 Bytes Nd Nd
Númericos
• Scala soporta la conversión automática de los números de un rango a
otro de ser necesario
• Scala no soporta convertir un número de un rango mayor a un rango
menor
• Se puede perder información si esto fuera posible
• Se puede convertir manualmente a un determinado tipo, utilizando el
método toType: toInt, por ejemplo
String
• Representa a una cadena de texto
• Esta basado en el objeto String de Java, le agrega caracteres multi
línea e interpolación de cadenas
String y operadores
• Los String soportan operadores, como por ejemplo “+” o “==“ para
comparar
• El operador “==“ verifica la igualdad de los caracteres, no verifica la
referencia de los objetos.
• Para una cadena multi línea se utiliza comillas triples (“”” – “”” ), para
estos no se reconocen los caracteres especiales.
String y operadores
Interpolación
• Se utiliza para utilizar valores de variables dentro de una cadena
• Al inicio de la cadena, se debe agrega “s” y el símbolo de “$” se utiliza
para agregar las variables
Ejemplo de interpolación
Expresiones regulares
• Es una cadena de caracteres y determinados signos que representan
un patrón
• Popularizado por Perl, actualmente las expresiones regulares son
parte de la mayoría de lenguajes de programación.
• En Scala, la formación de los patrones se basa en
• javax.util.regex.Pattern

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Clase 01 290615
Clase 01 290615Clase 01 290615
Clase 01 290615
 
Arrays - programación 3
Arrays - programación 3Arrays - programación 3
Arrays - programación 3
 
Variables y tipos de datos parcial
Variables y tipos de datos parcialVariables y tipos de datos parcial
Variables y tipos de datos parcial
 
Ap3 java
Ap3   javaAp3   java
Ap3 java
 
Tipos de variables que Java maneja
Tipos de variables que Java manejaTipos de variables que Java maneja
Tipos de variables que Java maneja
 
Variables en java
Variables en javaVariables en java
Variables en java
 
Tipos de datos_en_java
Tipos de datos_en_javaTipos de datos_en_java
Tipos de datos_en_java
 
Expo guardar objetos en ficheros serializable (2)
Expo guardar objetos en ficheros  serializable (2)Expo guardar objetos en ficheros  serializable (2)
Expo guardar objetos en ficheros serializable (2)
 
Tipos de Variables en Java
Tipos de Variables en JavaTipos de Variables en Java
Tipos de Variables en Java
 
Java basico
Java basicoJava basico
Java basico
 
8. Uso De Variables De Tipo Referencia
8.  Uso De Variables De Tipo Referencia8.  Uso De Variables De Tipo Referencia
8. Uso De Variables De Tipo Referencia
 
Introducción a la programación y la informática. Tema 3
Introducción a la programación y la informática. Tema 3Introducción a la programación y la informática. Tema 3
Introducción a la programación y la informática. Tema 3
 
Tipos de datos.java
Tipos de datos.javaTipos de datos.java
Tipos de datos.java
 
Java
JavaJava
Java
 
Java
JavaJava
Java
 
Programación 2
Programación 2Programación 2
Programación 2
 
Action script 3_basic
Action script 3_basicAction script 3_basic
Action script 3_basic
 
Javascript
JavascriptJavascript
Javascript
 
tipos de datos
tipos de datostipos de datos
tipos de datos
 

Destacado (17)

Desarrollo Web con Scala
Desarrollo Web con ScalaDesarrollo Web con Scala
Desarrollo Web con Scala
 
Scala coeli
Scala coeliScala coeli
Scala coeli
 
JavaScript: Mejorando la programación
JavaScript: Mejorando la programaciónJavaScript: Mejorando la programación
JavaScript: Mejorando la programación
 
Scala en la Practica
Scala en la PracticaScala en la Practica
Scala en la Practica
 
Pf con scala
Pf con scalaPf con scala
Pf con scala
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
Programación Funcional en Scala
Programación Funcional en ScalaProgramación Funcional en Scala
Programación Funcional en Scala
 
Scala - just good for Java shops?
Scala - just good for Java shops?Scala - just good for Java shops?
Scala - just good for Java shops?
 
JavaFX and Scala - Like Milk and Cookies
JavaFX and Scala - Like Milk and CookiesJavaFX and Scala - Like Milk and Cookies
JavaFX and Scala - Like Milk and Cookies
 
Baño
BañoBaño
Baño
 
Introducción a scala
Introducción a scalaIntroducción a scala
Introducción a scala
 
Koreference
KoreferenceKoreference
Koreference
 
Scala+swing
Scala+swingScala+swing
Scala+swing
 
Mobius: C# Language Binding For Spark
Mobius: C# Language Binding For SparkMobius: C# Language Binding For Spark
Mobius: C# Language Binding For Spark
 
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
 
4 Introducción al lenguaje Scala
4 Introducción al lenguaje Scala4 Introducción al lenguaje Scala
4 Introducción al lenguaje Scala
 
Scala
ScalaScala
Scala
 

Similar a Curso de Scala: Trabajando con variables

Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programaciónKarenNaranjoH
 
Estructura de datos y algortimos
Estructura de datos y algortimosEstructura de datos y algortimos
Estructura de datos y algortimosJavier Rivas
 
Unidad i antecedentes1
Unidad i antecedentes1Unidad i antecedentes1
Unidad i antecedentes1BrayanBaffz
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datoslensh
 
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?Micael Gallego
 
Estructura Sintactica
Estructura SintacticaEstructura Sintactica
Estructura SintacticaluchoGL
 
Punteros y elementos dinámicos en c++
Punteros y elementos dinámicos en c++Punteros y elementos dinámicos en c++
Punteros y elementos dinámicos en c++Tensor
 
Clase II Estructura de Datos. IUTE- Merida
Clase II Estructura de Datos. IUTE- MeridaClase II Estructura de Datos. IUTE- Merida
Clase II Estructura de Datos. IUTE- Meridaguestc906c2
 
Tipos de datos orleny esperidin
Tipos de datos orleny esperidinTipos de datos orleny esperidin
Tipos de datos orleny esperidinMari_1114
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadenaTensor
 
Conceptos basicos de programacion
Conceptos basicos de programacionConceptos basicos de programacion
Conceptos basicos de programacionSamuelOjedaViveros
 
tposdedatosc-200924033657.pptx
tposdedatosc-200924033657.pptxtposdedatosc-200924033657.pptx
tposdedatosc-200924033657.pptxErrol31
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadenaTensor
 

Similar a Curso de Scala: Trabajando con variables (20)

Las variables y constantes
Las variables y constantesLas variables y constantes
Las variables y constantes
 
A3 identificador palabraclavetipos
A3 identificador palabraclavetiposA3 identificador palabraclavetipos
A3 identificador palabraclavetipos
 
variables a.pptx
variables a.pptxvariables a.pptx
variables a.pptx
 
variables
variables variables
variables
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programación
 
Estructura de datos y algortimos
Estructura de datos y algortimosEstructura de datos y algortimos
Estructura de datos y algortimos
 
Unidad i antecedentes1
Unidad i antecedentes1Unidad i antecedentes1
Unidad i antecedentes1
 
Variables de-programacin
Variables de-programacinVariables de-programacin
Variables de-programacin
 
Java
JavaJava
Java
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
JavaScript para Javeros. ¿Cómo ser moderno y no morir en el intento?
 
Estructura Sintactica
Estructura SintacticaEstructura Sintactica
Estructura Sintactica
 
Punteros y elementos dinámicos en c++
Punteros y elementos dinámicos en c++Punteros y elementos dinámicos en c++
Punteros y elementos dinámicos en c++
 
Clase II Estructura de Datos. IUTE- Merida
Clase II Estructura de Datos. IUTE- MeridaClase II Estructura de Datos. IUTE- Merida
Clase II Estructura de Datos. IUTE- Merida
 
Datos y algoritmos
Datos y algoritmosDatos y algoritmos
Datos y algoritmos
 
Tipos de datos orleny esperidin
Tipos de datos orleny esperidinTipos de datos orleny esperidin
Tipos de datos orleny esperidin
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Conceptos basicos de programacion
Conceptos basicos de programacionConceptos basicos de programacion
Conceptos basicos de programacion
 
tposdedatosc-200924033657.pptx
tposdedatosc-200924033657.pptxtposdedatosc-200924033657.pptx
tposdedatosc-200924033657.pptx
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 

Más de Gary Briceño

Git - Iniciando la Administración de Contenidos
Git - Iniciando la Administración de ContenidosGit - Iniciando la Administración de Contenidos
Git - Iniciando la Administración de ContenidosGary Briceño
 
Kanban principio de visualizacion
Kanban   principio de visualizacionKanban   principio de visualizacion
Kanban principio de visualizacionGary Briceño
 
Seguridad sql injection
Seguridad   sql injectionSeguridad   sql injection
Seguridad sql injectionGary Briceño
 
Software para android
Software para androidSoftware para android
Software para androidGary Briceño
 
CAP 4: SEO - Optimizacion de Contenido
CAP 4: SEO - Optimizacion de ContenidoCAP 4: SEO - Optimizacion de Contenido
CAP 4: SEO - Optimizacion de ContenidoGary Briceño
 
CAP 3: SEO - Keywords Research
CAP 3: SEO - Keywords ResearchCAP 3: SEO - Keywords Research
CAP 3: SEO - Keywords ResearchGary Briceño
 
CAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOCAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOGary Briceño
 
CAP 1: SEO - Introduccion al marketing de buscadores
CAP 1: SEO - Introduccion al marketing de buscadoresCAP 1: SEO - Introduccion al marketing de buscadores
CAP 1: SEO - Introduccion al marketing de buscadoresGary Briceño
 
Instalando Android SDK
Instalando Android SDKInstalando Android SDK
Instalando Android SDKGary Briceño
 

Más de Gary Briceño (13)

Git - Iniciando la Administración de Contenidos
Git - Iniciando la Administración de ContenidosGit - Iniciando la Administración de Contenidos
Git - Iniciando la Administración de Contenidos
 
Kanban principio de visualizacion
Kanban   principio de visualizacionKanban   principio de visualizacion
Kanban principio de visualizacion
 
Seguridad sql injection
Seguridad   sql injectionSeguridad   sql injection
Seguridad sql injection
 
Software para android
Software para androidSoftware para android
Software para android
 
Gary Briceño
Gary BriceñoGary Briceño
Gary Briceño
 
CAP 4: SEO - Optimizacion de Contenido
CAP 4: SEO - Optimizacion de ContenidoCAP 4: SEO - Optimizacion de Contenido
CAP 4: SEO - Optimizacion de Contenido
 
CAP 3: SEO - Keywords Research
CAP 3: SEO - Keywords ResearchCAP 3: SEO - Keywords Research
CAP 3: SEO - Keywords Research
 
CAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOCAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEO
 
CAP 1: SEO - Introduccion al marketing de buscadores
CAP 1: SEO - Introduccion al marketing de buscadoresCAP 1: SEO - Introduccion al marketing de buscadores
CAP 1: SEO - Introduccion al marketing de buscadores
 
Instalando Android SDK
Instalando Android SDKInstalando Android SDK
Instalando Android SDK
 
Tecnicas de SEO
Tecnicas de SEOTecnicas de SEO
Tecnicas de SEO
 
Temario curso SEO
Temario curso SEOTemario curso SEO
Temario curso SEO
 
Trennbare Verben
Trennbare VerbenTrennbare Verben
Trennbare Verben
 

Último

Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 

Último (7)

Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 

Curso de Scala: Trabajando con variables

  • 1. Capítulo 2: Definición de datos Elaborado por Gary Briceño http://Gary.pe
  • 2. Definición: Literal, Valor y Tipo • Literal • Son los datos que aparecen directamente en el código, cómo los números, caracteres o un texto • Ejemplo: 5, A, “Hola Mundo” • Valor • Un valor es una unidad de almacenamiento inmutable. • Se puede asignar un valor cuando es asignado, pero no puede ser reasignado • Tipo • Es el tipo de dato con el cual esta trabajando, una definición o clasificación de la data. • Todos los datos en Scala corresponden a un tipo específico • Todas los Tipos en Scala son definidos como clases con métodos que operan sobre ellas
  • 3. Garbage Collector • Similar al trabajo que realiza en Java • La data almacenada en los valores es automáticamente liberada por el Garbage Collector de la máquina virtual cuando esta ya no es utilizada. • No hay necesidad de liberar esta información en forma manual
  • 4. Sintaxis val <name>: <tipo> = <literal>; En este ejemplo se han definido tres tipos de variables: Una de ellas nombre hola, de tipo String y con valor “Hello World!”.
  • 5. Scala REPL • Cuando se define una variable, ¿Qué sucede? • Read-Evaluate-Print-Loop • Cuando se define una variable, se lee la definición del valor, se evalúa y se reimprime una vez confirmado el valor. • El valor resultado de una operación, pasa a una nueva variable
  • 6. Valores • Los valores son inmutables, los tipos almacenan unidades y son el método por defecto para guardar un valor. • Se puede definir un nuevo valor utilizando la palabra reservada val. val <name> [: <tipo> ] = <data>; • Los valores requiere un nombre y asignarle un dato, pero no requieren del dato explicito. • Si no se asigna un tipo, el compilador de S
  • 8. Inferencia de tipo • Scala cuenta con la inferencia de tipo, la cual no obliga a definir el tipo de la variable, y Scala infiere el tipo de la misma • Esta es una ayuda al escribir código pues elimina la necesidad de escribir el tipo de dato al escribir el código. • Se debe utilizar cuando este no disminuye la facilidad de lectura de su código • En algunos casos será mejor incluir el tipo de dato en forma explicita, a fin de mejorar la lectura del código
  • 9. Variables • Por lo general una variable hace referencia a un identificador que se corresponde con un espacio de memoria, en donde el valor puede ser almacenado u obtenido. De la misma forma que es reservado, se puede asignar nuevos valores una y otra vez. • Esto funciona en la mayoría de lenguajes como Java, Python, C y Ruby • Variables son dinámicas, mutables y reasignables • En Scala se prefieren valores a variables, debido a la estabilidad y escalabilidad que brindan al programa. • Cuando asigna un valor, este mantiene el mismo valor durante la ejecución del programa • Finalmente, cuando trabaja con programas multi hilos o concurrentes, los valores inmutables hacen más estable el sistema
  • 10. Nombres • En Scala para las variables, se pueden utilizar letras, números y un rango de caracteres especiales • Se pueden utilizar caracteres como * y +, así como símbolos φ • Se pueden utilizar todos los caracteres de u0020-007F y Unicode a excepción de [] o punto (.)
  • 11. Reglas de nombres • Una letra seguida de cero o más letras y dígitos • Una letra seguida de cero o más letras y dígitos, luego guion bajo (_), luego letras y dígitos • Uno o más operadores de caracteres • Los nombres no pueden empezar con números
  • 12. Tipos • Tiene tipos numéricos(Int y Double) y no numéricos (String), para definir valores y variables • Estos tipos son la base para construir otros objetos y collections • En Scala no hay el concepto de datos primitivos
  • 13. Tipos númericos Name Descripción Tamaño Mínimo Máximo Byte Entero con signo 1 Byte -127 128 Short Entero con signo 2 Bytes -32768 32767 Int Entero con signo 4 Bytes - 2 a la 31 2 a la 31 – 1 Long Entero con signo 8 Bytes - 2 a la 63 2 a la 63 – 1 Float Punto flotante con signo 4 Bytes Nd Nd Double Punto flotante con signo 8 Bytes Nd Nd
  • 14. Númericos • Scala soporta la conversión automática de los números de un rango a otro de ser necesario • Scala no soporta convertir un número de un rango mayor a un rango menor • Se puede perder información si esto fuera posible • Se puede convertir manualmente a un determinado tipo, utilizando el método toType: toInt, por ejemplo
  • 15. String • Representa a una cadena de texto • Esta basado en el objeto String de Java, le agrega caracteres multi línea e interpolación de cadenas
  • 16. String y operadores • Los String soportan operadores, como por ejemplo “+” o “==“ para comparar • El operador “==“ verifica la igualdad de los caracteres, no verifica la referencia de los objetos. • Para una cadena multi línea se utiliza comillas triples (“”” – “”” ), para estos no se reconocen los caracteres especiales.
  • 18. Interpolación • Se utiliza para utilizar valores de variables dentro de una cadena • Al inicio de la cadena, se debe agrega “s” y el símbolo de “$” se utiliza para agregar las variables
  • 20. Expresiones regulares • Es una cadena de caracteres y determinados signos que representan un patrón • Popularizado por Perl, actualmente las expresiones regulares son parte de la mayoría de lenguajes de programación. • En Scala, la formación de los patrones se basa en • javax.util.regex.Pattern