En post anteriores hemos hablado sobre Docker. En este post usaremos una imagen de Ballerina y la descargaremos con Docker.
$ docker pull ballerina/ballerina $ docker images
Para compilar y ejecutar un programa escribimos este script bash:
ejecuta.sh
#!/bin/bash # Mostramos el nombre del programa a compilar y ejecutar echo "Ejecutamos $1" docker run -v `pwd`:/home/ballerina -it ballerina/ballerina:1.0.2 ballerina build $1 docker run -v `pwd`:/home/ballerina -it ballerina/ballerina:1.0.2 ballerina run $1
$ sudo chmod +x ejecuta.sh $ ./ejecuta.sh programa.bal
Comencemos con algunos ejemplos.
Ejemplo. El clásico programa de "Hola, mundo".holamundo.bal
import ballerina/io; public function main(string... args) { io:println("Hola en Ballerina!!"); }
$ ./ejecuta.sh holamundo.bal
mayor_tres_numeros.bal
import ballerina/io; public function main(string... args) { int a = 4; int b = -32; int c = 1; int mayor = a; io:println("Numeros:\na:",a,",b:",b,",c:",c); if(mayor < b){ mayor = b; } if(mayor < c){ mayor = c; } io:println("mayor:",mayor); }
Compilamos y ejecutamos:
$ ./ejecuta.sh mayor_tres_numeros.bal
Ejemplo. Crear dos funciones, una para sumar y otra para multiplicar dos números enteros.
funciones.bal
import ballerina/io; public function sumar(int a, int b) returns int { return a + b; } public function multiplicar(int a, int b) returns int { return a * b; } public function main(string... args) { int a=7; int b=5; io:println("Suma de 5 y 7 es: ",sumar(a,b)); io:println("Producto de 5 y 7 es: ",multiplicar(a,b)); }
Compilamos y ejecutamos:
$ ./ejecuta.sh funciones.bal
¿Qué podemos analizar con estos ejemplos?
io:println("Hola en Ballerina!!");
int entero = 34; io:println("Entero: ",entero);
Las instrucciones deben terminar con ;
Además se debe respetar el tipo de dato (esto no es Javasript u otro lenguaje de tipado dinámico). Las funciones pueden o no devolver valores, si devuelven deben llevar la palabra returns en la cabecera indicando el tipo a devolver y return para devolver el valor calculado.
Ejemplo. Crear un programa que haga uso de sentencias iterativas con for y while.
bucles.bal
import ballerina/io; public function main(string... args) { io:println("Elemento 0: ",numeros[0]);//1 io:println("Elemento 5: ",numeros[5]);//6 io:println("Tamaño: ",numeros.length());//8 foreach var num in numeros{ io:println("Elemento: ",num); } io:println("======================================"); foreach var i in 0...9 { io:println("Numero: ",i); } io:println("======================================"); int cont=0; while (cont < 10) { io:println("Cont: ",cont); cont = cont + 1; } }
Compilamos y ejecutamos:
$ ./ejecuta bucles.bal
Como se puede ver la síntaxis es casi idéntica a la de Java y/o C#. Para quienes tienen cierta experiencia programando en lenguajes similares se les facilitará aprenderlo.
En próximos post veremos más ejemplos.
Enlaces:
https://alquimistadecodigo.blogspot.com/2020/09/docker-instalando-ballerina.html
https://ballerina.io/
No hay comentarios:
Publicar un comentario