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 -version
Compilar:
groovyc script.groovy
Ejecutar:
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)
No hay comentarios:
Publicar un comentario