Groovy es un lenguaje dinámico que permite usar el API de java para crear código más sencillo de leer y entender.
El código generado es compatible con los bytecodes (.class) de un programa java.
Algunos ejemplos en Groovy.
1. Ejecutar desde línea de comandos
Ver la versión:
groovy -versionCompilar:
groovyc script.groovyEjecutar:
groovy script.groovy
2. Paso de parámetros (desde línea de comandos)
Le paso un parámetro:
groovy -e "println 'Hola '+args[0]" Juan Debería imprimir:
Hola Juan
Ahora paso varios parámetros:
groovy -e "if(args){args.each{println 'Hola '+it } }else{ println 'no hay argumentos'}" Alma Karla Johnatan Belem Ricardo Debería imprimir:
Hola Alma Hola Karla Hola Johnatan Hola Belem Hola Ricardo
3. Obtener las propiedades del sistema
Vamos a usar
System.getProperty, para conocer el SO:def sistemaOperativo(){ return System.getProperty("os.name") } def ver(so){ if(so.toLowerCase().contains("win")){ println "windows" }
else if(so.toLowerCase().contains("mac")){ println "mac" }
else if(so.toLowerCase().equalsIgnoreCase("nix")){ println "unix" }
else{ println so } }
def inicio(){ ver(sistemaOperativo()) } //invoco el método principal inicio()
4. Usar "assert"
Nos sirve para depurar nuestro código.
def groovy="Groovy" // tiene 6 caracteres assert groovy.size()==8 // es obvio que será error Obtenemos esto:
Caught: Assertion failed:
assert groovy.size()==8
| | |
Groovy 6 false
Assertion failed:
assert groovy.size()==8
| | |
Groovy 6 false
at Groov.run(Groov.groovy:127)
Si cambiamos el código
def groovy="Groovy" // tiene 6 caracteres assert groovy.size()==6 // correcto No producirá nada, eso indica que esta bien.
5. Clases
class Persona{ def nombre def edad def verDatos(){ return "nombre: $nombre ,edad: $edad" } def getEdad(){
edad
} def getNombre(){
nombre
} } def persona=new Persona(nombre:"Ignacio",edad:41) println "nombre: $persona.nombre ,edad: $persona.edad" println persona.verDatos() println "nombre: "+persona.getNombre()+" , edad: "+persona.getEdad()
6. Entrada de datos
def entrada=new java.util.Scanner(System.in) println "Introduce tu nombre:" def nombre=entrada.nextLine() println "Hola ${nombre}"
7. Ejecutar comandos
Dese línea de comandos:
groovysh
println "dir".execute().text En un script:
println "teclea comando" def comandoWin=teclado.nextLine() def sub="cmd /c "+comandoWin println sub Process proceso = sub.execute() println "${proceso.text}"
8. try-catch
try{ println "inicio" // más código... }catch(e){ println "error ${e.getCause()}" }
finally{ println "fin..." }
Hay más cosas sobre Groovy.
"Si la depuración es el proceso de eliminar errores, entonces la programación debe ser el proceso de ponerlos" ::Edsger Dijkstra::Links:
Clojure comparativa con Groovy
Groovy comparativa con otros lenguajes
http://codemonkeyjunior.blogspot.mx/2012/02/groovy-programando-al-estilo-java.html
http://codemonkeyjunior.blogspot.mx/2012/11/programando-en-groovy-al-estilo-java-no.html
Cómo hacer prueba a un script Groovy (@rodrigo salado anaya)














