Curso de Scala: Trabajando con variables
-
Upload
gary-briceno -
Category
Software
-
view
1.374 -
download
0
Transcript of Curso de Scala: Trabajando con variables
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
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 multilí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.
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