domingo, 30 de junio de 2013

Groovy para novatos


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

Vibe Coding (la programación vía IA): ¿el futuro de la programación?

Vibe Coding es un nuevo paradigma de programación, una nueva forma de crear código. Es un enfoque emergente en el desarrollo de sof...

Etiquetas

Archivo del blog