Groovy

588 views
507 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
588
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Groovy

  1. 1. Groovy Lucas Aquiles
  2. 2. O que é groovy? <ul><ul>“ Groovy is an agile dynamic language for the Java Platform with many features that are inspired by languages like Python, Ruby and Smalltalk, making them available to Java developers using a Java-like syntax .” </ul></ul>
  3. 3. O que é Groovy? <ul><li>Linguagem Ágil e Dinâmica para JVM
  4. 4. Possui os pontos fortes do Java + Energia do Ruby, Smalltalk, Python
  5. 5. Possui fácil integração com as libs Java
  6. 6. Alta curva de aprendisagem
  7. 7. Suporte a closures
  8. 8. Tudo é objeto </li></ul>
  9. 9. O que é Groovy? Uma classe Java // HelloWord.java
  10. 10. O que é Groovy? Uma classe Groovy // HelloWord.groovy
  11. 11. O que é Groovy? … do jeito Groovy // HelloWord.groovy
  12. 12. O que é Groovy? <ul><li>Getters e Setters são criados automaticamente
  13. 13. A palavra-chave def indica que ela vai ser tipada dinamicamente
  14. 14. Interpolação de Strings através do GString
  15. 15. O return é opcional
  16. 16. Não precisa importar o pacote java.util </li></ul>
  17. 17. Como rodar um script groovy? <ul><li>Via shell: </li><ul><li>Goovysh </li></ul></ul>Obs: em ambiente windows o arquivo é o groovysh.bat
  18. 18. Como rodar um script groovy? <ul><li>Ou pelo groovyConsole </li></ul>
  19. 19. Assertions <ul><li>Usado para verificar se não existe nenhuma consitência na lógica </li><ul><li>Ex: assert <condição> </li></ul></ul>
  20. 20. Assertions <ul><li>Usado para verificar se não existe nenhuma consitência na lógica </li><ul><li>Ex: assert <condição> </li></ul></ul>
  21. 21. GString <ul><li>String podem vir entre aspas simples ou aspas duplas
  22. 22. Em aspas duplas permietem usar o $ para interpolar strings
  23. 23. def nome = “herp” def sobrenome = “derp” println “${nome} ${sobrenome}” </li></ul>
  24. 24. Listas, Maps, Ranges <ul><li>Listas </li><ul><li>def nomes = [“herp derp”,”derpson”]
  25. 25. assert nomes[0] = “herp derp” </li></ul><li>Maps </li><ul><li>def cidades = [pi:&quot;Teresina&quot;, ma:&quot;são luis&quot;] </li></ul></ul>
  26. 26. Listas, Maps, Ranges <ul><li>Ranges </li><ul><li>É um ponto de inicio e fim
  27. 27. def escala = 1..20
  28. 28. assert escala.contains(2) assert escala.size(20) </li></ul></ul>
  29. 29. Closures <ul><li>É um bloco de código que envolpado como um objeto, que atua como um método </li><ul><li>def soma = {n->
  30. 30. (1..10).each{
  31. 31. println &quot;me gusta! ${it}&quot;
  32. 32. }
  33. 33. }
  34. 34. soma() </li></ul></ul>
  35. 35. Loops <ul><li>For </li><ul><li>for(it in minhaLista){ </li><ul><li>println it </li></ul><li>} </li></ul><li>Each </li><ul><li>MinhaLista.each{i-> println i } </li></ul></ul>
  36. 36. Loops <ul><li>Times </li><ul><li>10.times{
  37. 37. println it
  38. 38. } </li></ul><li>EachLine </li><ul><li>new File('texto.txt').eachLine{ </li><ul><li>println it </li></ul><li>} </li></ul></ul>
  39. 39. Elvis Operator <ul><li>.? </li><ul><li>Utilizado para fazer navegação segura a métodos ou acessar campos de uma refência
  40. 40. Evita que uma exceção do tipo NPE seja lançada
  41. 41. def jogador = new Jogador(nome:“derpson”) jogador.time?.nome </li></ul></ul>

×