Ir al contenido principal

Java y los lenguajes JVM: Scala en un vistazo

Scala es un lenguaje de programación orientado a objetos y funcional. Es además uno de los lenguajes dependientes de la JVM como lo son Clojure, Groovy y Kotlin.

Instalación con SDKMAN!

sdk install scala

Comprobamos la instalación:

scala --version
scalac --version

Holamundo.scala

object Holamundo{
    def main(args: Array[String]): Unit = {
        println("Hola, mundo en Scala !!")
   }
}

El clásico "Hola, mundo" en Scala. Como se puede ver la extensión del programa no puede ser más que *.scala

ACTUALIZACIÓN

Esto no podrá servir más que enversiones antiguas del lenguaje.

Compilar y ejecutar:

# Compilación
scalac HolaMundo.scala

# Ejecución
scala HolaMundo

Si solo quieres ejecutar, teclea solo la segunda instrucción.

# Ejecución
scala HolaMundo.scala

Nota: Esta es la nueva forma para ejecutar tus programas en Scala:

scala run HolaMundo.scala

Variables.scala

object Variables{
    def main(args: Array[String]): Unit = {
        variables()
    }
    def variables():Unit = {
        val nombre:String = "Fernando"
        var cierto:Boolean = 34 > 88
        val car: Char = '\u0021'
        val flotante: Float = 32.1f
        val numero: Short = 2
        val entero: Int = 321
        val largo: Long = 1202020L
        val real: Double = 30303.88
        val bigDecimal = BigDecimal("2")
        println("\t [Variables en Scala]")
        printf("Hola, %s\n",nombre)
        printf("Es cierto?: %b\n",cierto)
        printf("Caracter: %c\n",car)
        printf("Numero: %d\n",numero)
        printf("Entero: %d\n",entero)
        printf("Largo: %1d\n",largo)
        printf("Flotante: %.2f\n",flotante)
        printf("Real: %.2f\n",real)
        printf("BigDecimal: %.2f\n",bigDecimal)
    }
}

En este programa se puede ver la declaración de variables y tipo de datos. Se usa val para declarar constantes y var para las variables.

Tipos de datos en Scala

Tipo Descripción Como se imprime
Short Número corto %d
Byte Byte %d
Int Entero %d
Long Número largo %1d
Char Caracter simple %c
String Cadena de caracteres %s
Float Flotante %f
Double Real %.f
Boolean Booleano %b

Condicionales.scala

object Condicionales{
    def main(args: Array[String]): Unit = {
        selectivas()
    }
    def selectivas():Unit ={
        var cierto:Boolean = false
        val opcion = 1
        println("\t [ Sentencias selectivas ]")

        if (!cierto){
            println("A");
        }

        if (cierto){
            println("B")
        }else if( 32 > 43 && 90 == 32){
            println("C")
        }else{
            println("AA")
        }

        printf("Resultado: %s\n",matchOpcion(opcion))
        
       
        "Alef"match {
            case "Alef" => println("El inicio")
            case "Bet" => println("La sabiduría")
            case _ => println("undefined")
        }
    }

    def matchOpcion(x:Int): String = x match{
        case 0 => "Opcion 0"
        case 1 => "Opcion 1"
        case 2 => "Opcion 2"
        case _ => "Otra opcion"
    }
}

En este programa se pueden ver algunas sentencias selectivas. La que más llama la atención es la sentencia match, el cual es el switcth de este lenguaje

Repetitivas.scala

object Repetitivas{
    def main(args: Array[String]): Unit = {
        repetitivas()
    }
    def repetitivas(): Unit={
        val librosPrecio = Map(
            "El ser y la nada"  -> 300.0, 
            "La cuarta dama"  -> 245.0, 
            "Unicornios y dragones" -> 350.0)
        val numeros = Seq(1,2,3,4,5)
        val nombres = List("Bill", "Candy", "Karen", "Leo", "Regina")
        println("\t [ Sentencias repetitivas ]")

        for (n <- numeros) println(n)
        println()
        for(n <- nombres) println(n)
        println()
        nombres.foreach(println)

        // Usando el for
        for ((titulo,precio) <- librosPrecio) println(s"Libro: $titulo, Precio: $precio")
        println()
        // Usando for each
        librosPrecio.foreach {
            case(titulo,precio) => println(s"Libro: $titulo, Precio: $precio")
        }
    }
}

En este programa podemos ver como iterar una lista y mapa usando for y for each propios del lenguaje.

En próximos post se verán más ejemplos de este lenguaje.

Enlaces:

https://www.scala-lang.org/
http://scalatutorials.com/

Comentarios

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...