Aspectos semánticos de Scala Para analizar la estructura semántica de Scala debemos separarlo en tres partes: 1.-Expresiones: 1.-Operadores: A).-Scala permite operadores tales como: Operadores Aritméticos Operadores Relacionales Operadores Lógicos (+, -, *, %, /) (>, <, >=, =<, !=, ==) (&&, ||, !) 2.- Tipos de datos En Scala los tipo de datos son clases: algunos ejemplos 3.- Evaluación de expresiones Dentro de una expresión, los operadores se evalúan de acuerdo a su orden de preferencia. De mayor precedencia a menor. */% + : =! <> & Ejemplo: Ejemplo de evaluación de una expresión aritmética: (2 * pi) * radius → (2 * 3.141592653589793) * radius → 6.283185307179586 * radius → 6.283185307179586 * 10 → 62.83185307179586 2.- Instrucción de control Se pueden separar en instrucciones de repetición y de selección. Instrucción de repetición: If/else y match (similar al de Java) If/else: La estructura de control if, permite decidir sobre la ejecución de dos secuencias de instrucciones de manera condicional sobre una expresión que evalúa a verdadero o falso. Funciona de manera análoga al operador ternario del lenguaje C, es decir un bloque if retorna un valor al completar su ejecución. if (<expresión>){ <instrucciones si true> <valor retorno del bloque> } else{ <instrucciones si false> <valor retorno del bloque> } Match: Las expresiones match de Scala se pueden utilizar para seleccionar entre una lista de alternativas, al igual que múltiples sentencias if. Esta expresión match compara el valor de la variable miVar con los valores en cada uno de los cuatro estados de casos. Si el valor de myVar coincide con alguno de estos valores, el código siguiente a la declaración del caso emparejado se ejecuta. Una diferencia del match de scala con el de Java, es que en escala la expresión Math devuelve un valor. Instrucción de repetición (for, while, do while). While: La estructura de control while funciona de la misma forma que en otros lenguajes de programación: sirve para repetir una secuencia de instrucciones mientras cierta condición se cumpla, la ejecución del bloque no se da cuando la condición se hace falsa. Su sintaxis quedaría: While (condition) { Statement(s); } Algunas características While siempre retorna el valor unit(). Permite la programación imperativa. En Scala, se trata de evitar su utilización . Do While: Muy similar a While, excepto que su condición se ejecuta después del cuerpo del bucle. El bloque do-while sirve para ejecutar una secuencia de instrucciones y repetir la ejecución del bloque hasta que una condición se haga falsa. Su sintaxis quedaría Do{ Statement (S); }while (condition); Ejemplos de While y do While While: var myInt : Int = 0; while(myInt < 10) { println("myInt = " + myInt); myInt += 1; } Do while: var myInt : Int = 0; do { println("myInt = " + myInt); myInt+=1; } while(myInt < 10) For: En scala, el FOR también ejecuta cierto bloque de código, siempre que una condición sea verdadera. Sin embargo, es diferente a While. Ejemplo: Este bucle se repite 10 veces y para cada iteración se asigna el ‘a’ al siguiente número del rango. De 1 a 10 son llamados los rangos. Devolverá una serie que contiene del 1 a 10, incluyendo esos dos números. 3.-Reglas de ejecución Lo explicaremos mediante un ejemplo: 1.-Anotamos un ejemplo básico Object HolaMundo { def main(args: Array[String]) { println("Hola, mundo!") } } 2.-Compilamos > scalac HolaMundo.scala 3.- Ejecutamos Una vez es muy mismas produce compilado, un programa Scala se puede ejecutar utilizando el comando scala. Su uso similar al del comando java utilizado para ejecutar programas Java, y acepta las opciones. El ejemplo anterior puede ejecutarse mediante el siguiente comando, que la salida esperada: > scala -classpath . HolaMundo Hola, mundo!