Advertisement
ARIELCARRARO

Closures.groovy

Jun 18th, 2012
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 1.57 KB | None | 0 0
  1. /**
  2. *
  3. *
  4. *@author ariel carraro
  5. *
  6. */
  7.  
  8.  
  9.  
  10. //solo imprime el mensaje "Hola desde un closure"
  11. def hola={
  12.   println("Hola desde un closure")
  13. }
  14. //invocar closure "hola"
  15. hola()
  16.  
  17. //2. closure con un parámetro
  18. // multiplica un número por 2
  19. def doble={ n ->
  20.         return n*2
  21. }
  22. //invocar closure "doble"
  23. def numero=doble(5)
  24. println("el doble de 5 es "+numero)
  25. // también puede escribirse println "el doble de 5 es ${numero}"
  26.  
  27. //3. closure con dos parámetros
  28. def var="Bienvenido"
  29. // imprime el valor de var y el parámetro que le envie el usuario
  30. def msg1={it -> println "${var}  ${it}"}
  31. //invocamos el closure, debe salir el mensaje "Bienvenido mundo"
  32. msg1("mundo")
  33.  
  34. //4. closure más complejo
  35. //defino un closure con dos parámetros
  36. def otro={metodo, parametro -> metodo(parametro)}
  37. //ahora defino dos closure que reciben un solo parámetro
  38. def inicio={it -> println "Hola ${it}"}
  39. def fin={it -> println "Adios ${it}"}
  40. //invoco el closure "otro"
  41. otro(inicio,"Fernando")
  42. otro(fin,"Fernando")
  43.  
  44. //5. mandar una lista a un closure
  45. //defino una lista
  46. def lista=["Andrea","Fernando","Antonio","Lucero","Veronica"]
  47. //uso el closure "inicio"
  48. println "\n"
  49. lista.each inicio
  50.  
  51.  
  52. //6. closures y diccionarios
  53. //defino el diccionario
  54. def dicc=['Fernando':31,'Veronica':27,'María':43,'Yezmin':26,'Horacio':15]
  55. def suma=0
  56. //defino el closure
  57. def edadTotal={ x ->
  58.   x.each{
  59.    suma+=it.value
  60.   // println("obtener valor: "+it.value+ "  obtener llave o identificador: "+it.key)
  61.   }
  62.   println("Suma total de edades: "+suma)
  63. }
  64. //invoco el closure
  65. edadTotal(dicc)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement