Programación con Scala, incluyendo la asignación de valores, variables y literales. Contiene ademas los diferentes tipos existentes en Scala, tales como Int, Double o String. Presenta ejemplos de la definición de variables, donde principalmente no se pueden utilizar números para iniciar una variable y algunas características como que los valores son inmutables.
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