Groovy Tutorial de script para iniciantes

O que รฉ uma Groovy Roteiro?

apache Groovy รฉ orientado a objetos e Java linguagem de programaรงรฃo compatรญvel com sintaxe construรญda para o Java plataforma. Esta linguagem dinรขmica possui muitos recursos semelhantes aos Python, Ruby, Smalltalk e Pero. Groovy o cรณdigo fonte รฉ compilado em Java Bytecode para que possa ser executado em qualquer plataforma que tenha o JRE instalado. Groovy tambรฉm realiza diversas tarefas nos bastidores, o que o torna mais รกgil e dinรขmico.

Groovy linguagem pode ser usada como uma linguagem de script para o Java plataforma. ร‰ quase como uma super versรฃo do Java que oferece Javacapacidades empresariais. Ele tambรฉm oferece muitos recursos de produtividade, como suporte DSL, fechamentos e digitaรงรฃo dinรขmica. Ao contrรกrio de algumas outras linguagens, ele foi projetado como um complemento, nรฃo como um substituto. Java.

Porque Groovy?

Aqui estรฃo os principais motivos pelos quais vocรช deve usar e aprender Groovy-

  • Groovy รฉ uma linguagem รกgil e dinรขmica
  • Integraรงรฃo perfeita com todos os existentes Java objetos e bibliotecas
  • Parece fรกcil e natural de Java desenvolvedores
  • Cรณdigo mais conciso e significativo em comparaรงรฃo com Java
  • Vocรช pode usรก-lo o quanto quiser com Java Aplicativos

Groovy Histรณria

  • 2003: Desenvolvido por Bob McWhirter e James Strachan
  • 2004: Comissionado no JSR 241, mas foi abandonado
  • 2005: Trazido de volta por Jeremy Rayner e Guillaume Laforge
  • 2007: Groovy versรฃo 1.0
  • 2012: Groovy versรฃo 2
  • 2014: Groovy versรฃo 2.3 (suporte oficial dado para JDK 8)
  • 2015: Groovy tornou-se um projeto na Apache Software Foundation

Caracterรญsticas do Groovy

  • Lista, mapa, intervalo, literais de expressรฃo regular
  • Multimรฉtodo e metaprogramaรงรฃo
  • Groovy classes e scripts geralmente sรฃo armazenados em arquivos .groovy
  • Os scripts contรชm Groovy declaraรงรตes sem qualquer declaraรงรฃo de classe.
  • Os scripts tambรฉm podem conter definiรงรตes de mรฉtodos fora das definiรงรตes de classe.
  • Ele pode ser compilado e totalmente integrado com os tradicionais Java aplicaรงรฃo.
  • Suporte de nรญvel de idioma para mapas, listas e expressรตes regulares
  • Suporta fechamentos, digitaรงรฃo dinรขmica, protocolo de metaobjeto
  • Suporte para digitaรงรฃo estรกtica e dinรขmica e sobrecarga de operador
  • Declaraรงรฃo literal para listas (matrizes), mapas, intervalos e expressรตes regulares

Como instalar Groovy

Passo 1) Certifique-se de ter Java instalado.

Passo 2) Acesse http://groovy-lang.org/download.html e clique em instalador.

instalar Groovy

Nota: Vocรช tambรฉm pode instalar Groovy usando o arquivo Zip ou como um Eclipse IDE. Neste Groovy tutorial, vamos nos ater a Windows Instalar

Passo 3) Inicie o instalador baixado. Selecione o idioma e clique em OK

instalar Groovy

Passo 4) Lanรงar. Na tela de boas-vindas, clique em PRร“XIMO

instalar Groovy

Passo 5) Concorde com os termos da licenรงa

instalar Groovy

Passo 6) Selecione os componentes que deseja instalar e clique em PRร“XIMO

instalar Groovy

Passo 7) Selecione Diretรณrio de instalaรงรฃo e clique em PRร“XIMO

instalar Groovy

Passo 8) Escolha a pasta do menu Iniciar e clique em PRร“XIMO

instalar Groovy

Passo 9) Assim que a instalaรงรฃo estiver concluรญda, deixe os caminhos padrรฃo e clique em PRร“XIMO

instalar Groovy

Passo 10) Clique em NEXT

instalar Groovy

Passo 11) No menu Iniciar procure por Groovy cรดnsul

instalar Groovy

Groovy Exemplo Olรก Mundo

Considere que queremos imprimir uma string simples โ€œHello Worldโ€ em Java. O cรณdigo para obter a string Groovy olรก mundo seria

public class Demo {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

O cรณdigo acima รฉ vรกlido em ambos Java e Groovy as Groovy รฉ um superconjunto de Java. Mas a vantagem com Groovy รฉ que podemos eliminar a criaรงรฃo de classes, a criaรงรฃo de mรฉtodos pรบblicos, etc. e obter a mesma saรญda com um cรณdigo de linha รบnica, como segue:

println "Hello World."

Nรฃo hรก necessidade de ponto e vรญrgula

Nรฃo hรก necessidade de parรชnteses

System.out.println รฉ reduzido para println

Groovy Variรกveis

In Java, a vinculaรงรฃo estรกtica รฉ obrigatรณria. Significa que o tipo de uma variรกvel deve ser declarado antecipadamente.

public class Demo {
    public static void main(String[] args) {
        int x = 104;
        System.out.println(x);
        //x = "Guru99";
    }
}

No exemplo acima disso Groovy tutorial, o tipo de variรกvel (inteiro) รฉ declarado antecipadamente usando a palavra-chave โ€œintโ€. Se vocรช fosse declarar um nรบmero de ponto flutuante, usaria a palavra-chave float.

Se vocรช tentar atribuir um valor String a um int (remova o comentรกrio da linha 5), โ€‹โ€‹receberรก o seguinte erro

Demo.java:5: error: incompatible types: String cannot be converted to int
x = "Guru99";

Em contraste, Groovy suporta digitaรงรฃo dinรขmica. As variรกveis โ€‹โ€‹sรฃo definidas usando a palavra-chave โ€œdefโ€ e o tipo de variรกvel nรฃo precisa ser declarado antecipadamente. O compilador descobre o tipo de variรกvel em tempo de execuรงรฃo e vocรช pode atรฉ mesmo o tipo de variรกvel.

Considere o seguinte exemplo interessante,

def x = 104
println x.getClass()
x = "Guru99"
println x.getClass()

Saรญda:

class java.lang.Integer
class java.lang.String

In Groovy, vocรช pode criar strings multilinhas. Apenas certifique-se de colocar a String entre aspas triplas.

def x = """Groovy
at
Guru99"""
println x

Saรญda:

Groovy
at
Guru99

Observaรงรฃo: Vocรช ainda pode usar tipos de variรกveis โ€‹โ€‹como byte, short, int, long, etc. Groovy. Mas vocรช nรฃo pode alterar dinamicamente o tipo de variรกvel, pois o declarou explicitamente.

Considere o seguinte cรณdigo:

int x = 104
println x
x = "Guru99"

Dรก o seguinte erro

104
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
    at jdoodle.run(jdoodle.groovy:3)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Command exited with non-zero status 1

Groovy-Operatoros

Um operador รฉ um sรญmbolo que informa ao compilador para fazer certas manipulaรงรตes matemรกticas ou lรณgicas.

Groovy tem os seguintes cinco tipos de operadores โ€“

  • Operadores aritmรฉticos: Somar (+), Subtrair (-), Multiplicaรงรฃo (*), Divisรฃo (/)
  • Operadores relacionais: igual a (==), diferente de (!=), Less do que (<) Less maior ou igual a (<=), maior que (>), maior ou igual a (>=)
  • Operadores lรณgicos: E (&&), Ou(||), Nรฃo(!)
  • Operadores bit a bit: And(&), Or(|), (^), Xor ou operador Exclusive-or
  • Operadores de atribuiรงรฃo: Operador de negaรงรฃo (~)

Groovy-Rotaรงรตes

In Java, vocรช definiria um loop da seguinte maneira

public class Demo {
    public static void main(String[] args) {
        for (int x = 0; x <= 5; x++) {
            System.out.println(x);
        }
    }
}

Saรญda:

0
1
2
3
4

Vocรช pode obter o mesmo resultado em Groovy usando atรฉ palavras-chave

0.upto(4) {println "$it"}

Vocรช obtรฉm a mesma saรญda acima. $it รฉ um encerramento que fornece o valor do loop atual.

Considere o seguinte cรณdigo

2.upto(4) {println "$it"}

Dรก uma saรญda

2
3
4

Vocรช tambรฉm pode usar a palavra-chave โ€œtimesโ€ para obter o mesmo resultado

5.times{println "$it"}

Considere, vocรช deseja imprimir 0,2,4 com para loop em Java

public class Demo {
    public static void main(String[] args) {
        for (int x = 0; x <= 5; x=x+2) {
            System.out.println(x);
        }
    }
}

Saรญda:

0
2
4

Vocรช pode usar o mรฉtodo step para o mesmo

0.step(7,2){println "$it"}

Groovy- Tomando uma decisรฃo

Manifestaรงรตes Engano
Se Declaraรงรฃo Como em Java, a instruรงรฃo if serรก executada se a condiรงรฃo for verdadeira.
Declaraรงรฃo if/else Na instruรงรฃo if/else, inicialmente uma condiรงรฃo รฉ avaliada na instruรงรฃo if. Se a condiรงรฃo for verdadeira, as instruรงรตes serรฃo executadas depois disso. Ele para antes da condiรงรฃo else e sai do loop. No entanto, se a condiรงรฃo for falsa, as instruรงรตes no bloco de instruรงรตes else sรฃo executadas. Entรฃo ele sai do loop.
Instruรงรฃo If aninhada ร‰ usado quando hรก um requisito para ter mรบltiplas instruรงรตes if.
Declaraรงรฃo de mudanรงa A instruรงรฃo if-else aninhada pode se tornar ilegรญvel quando vocรช tem diversas condiรงรตes. Para tornar o cรณdigo mais legรญvel, a instruรงรฃo switch รฉ usada.
Instruรงรฃo de switch aninhada In Groovy tambรฉm รฉ possรญvel usar instruรงรตes switch aninhadas.

Groovy Lista

A estrutura da lista permite armazenar uma coleรงรฃo de itens de dados. Em um Groovy linguagem de programaรงรฃo, a List contรฉm uma sequรชncia de referรชncias de objetos. Ela tambรฉm mostra uma posiรงรฃo na sequรชncia. Um literal List รฉ apresentado como uma sรฉrie de objetos separados por vรญrgulas e colocados entre colchetes.

Exemplo de lista Grovy:

Uma lista de Strings- ['Angular', 'Nodejs,]

Uma lista de referรชncias de objetos โ€“ ['Groovy', 2,4 2.6]

Uma lista de valores inteiros โ€“ [16, 17, 18, 19]

Uma lista vazia- [ ]

A seguir estรฃo listados os mรฉtodos disponรญveis em Groovy:

O Propรณsito Descriรงรฃo
adicionar() Permite anexar o novo valor ao final desta lista.
contรฉm () Retorna verdadeiro se esta lista contiver um determinado valor.
get() Retorna o elemento na posiรงรฃo definida
estรก vazia() Retorna o valor verdadeiro se a lista nรฃo contiver elementos
menos() Este comando permite criar uma nova Lista composta pelos elementos do original excluindo aqueles que estรฃo especificados na coleรงรฃo.
mais() Permite criar uma nova Lista composta pelos elementos do original juntamente com os mencionados na coleรงรฃo.
pop () Remove o รบltimo item da lista
retirar() Remove o elemento na posiรงรฃo especรญfica
marcha rรฉ() Crie uma nova lista que inverte os elementos da lista original
Tamanho() Retorna o nรบmero de elementos desta lista
ordenar() Retorna uma cรณpia classificada

Considere o seguinte Groovy exemplo de roteiro

def y = ["Guru99", "is", "Melhor", "for", "Groovy"]
println y
y.add("Learning")
println(y.contains("is"))
println(y.get(2))
println(y.pop())

Saรญda:

[Guru99, is, Melhor, for, Groovy]
true
Melhor
Learning

Groovy mapas

Um mapa Groovy รฉ uma coleรงรฃo de pares de valores-chave

Exemplos de Groovy mapas:

  • [Tutorial: 'Java, Tutorial: 'Groovy] โ€“ Coleรงรฃo de pares chave-valor que tem Tutorial como chave e seus respectivos valores
  • [:] Representa um mapa vazio

Aqui estรก uma lista de mรฉtodos de mapa disponรญveis em Groovy.

O Propรณsito Descriรงรฃo
contรฉmKey() Verifique se o mapa contรฉm esta chave ou nรฃo?
get() Este comando procura a chave neste Mapa e retorna o valor correspondente. Se vocรช nรฃo encontrar nenhuma entrada neste mapa, ele retornarรก nulo.
conjunto de chaves() Permite encontrar um conjunto de chaves neste mapa
por() Associa o valor especificado ร  chave fornecida neste mapa. Se o Mapa continha anteriormente um mapeamento para esta chave. Entรฃo o valor antigo serรก substituรญdo pelo valor especificado.
Tamanho() Retorna o nรบmero de mapeamentos de valores-chave.
valores () Este comando retorna uma visualizaรงรฃo de coleรงรฃo dos valores.

Groovy Exemplo:

def y = [fName:'Jen', lName:'Cruise', sex:'F']
print y.get("fName")

saรญda

Jen

Groovy- Fechamentos

Um fechamento bacana รฉ um pedaรงo de cรณdigo agrupado como um objeto. Ele atua como um mรฉtodo ou uma funรงรฃo.

Exemplo de fechamento simples

def myClosure = {
       println "My First Closure"	
}
myClosure()

Saรญda:

My First Closure

Um encerramento pode aceitar parรขmetros. A lista de identificaรงรตes รฉ separada por vรญrgula com

uma seta (->) marcando o final da lista de parรขmetros.

def myClosure = {
       a,b,c->
       y = a+b+c
       println y
}
myClosure(1,2,3)

Saรญda:

6

Um fechamento pode retornar um valor.

def myClosure = {
       a,b,c->
       return (a+b+c)
}
println(myClosure(1,2,3))

Saรญda:

6

Existem muitos fechamentos integrados como โ€œItโ€, โ€œidentidadeโ€, etc. Os fechamentos podem receber outros fechamentos como parรขmetros.

Groovy Vs. Java

Groovy Java
In Groovy, o especificador de acesso padrรฃo รฉ pรบblico. Isso significa que um mรฉtodo sem qualquer modificador de acesso especificado รฉ pรบblico e acessรญvel fora dos limites de classe e pacote. In Java, o modificador de acesso padrรฃo รฉ um pacote, ou seja, se vocรช nรฃo especificar o modificador de acesso para campos, mรฉtodos ou classe, ele se tornarรก package-private,
Getters e setters sรฃo gerados automaticamente para os membros da classe. Java, vocรช precisa definir o mรฉtodo getters e setters para campos
Groovy permite substituiรงรฃo de variรกveis โ€‹โ€‹usando aspas duplas com strings. Java nรฃo oferece suporte ร  substituiรงรฃo de variรกveis.
A digitaรงรฃo de informaรงรตes รฉ opcional. A digitaรงรฃo de informaรงรตes รฉ obrigatรณria em Java.
Groovy nรฃo รฉ necessรกrio terminar com ponto e vรญrgula. In Java, toda instruรงรฃo termina com ponto e vรญrgula.
Groovy รฉ automaticamente uma classe de empacotamento chamada Script para cada programa In Java, vocรช precisa do mรฉtodo main para tornar uma classe executรกvel.

Mitos sobre Groovy

Mito Realidade
Podemos usar Groovy apenas para scripts. Ele pode ser usado para scripts. No entanto, vocรช pode realizar muitas outras tarefas alรฉm dela.
Groovy รฉ tudo sobre fechamentos. โ€œร‰ sรณ linguagem de programaรงรฃo funcional. " Groovy adota linguagens de programaรงรฃo funcionais como Lisp ou Closure.
Groovy รฉ a escolha ideal se vocรช quiser fazer TDD Esta afirmaรงรฃo รฉ verdadeira. No entanto, certamente nรฃo รฉ a รบnica razรฃo para usar Groovy.
Vocรช pode usar Groovy somente se vocรช quiser usar Grails. Grails รฉ uma poderosa estrutura de desenvolvimento web.

BUT Groovy oferece mais do que isso.

Contras de usar Groovy

  • JVM e Groovy o tempo de inรญcio do script รฉ lento, o que limita os scripts no nรญvel do sistema operacional
  • Groovy nรฃo รฉ totalmente aceito em outras comunidades.
  • Nรฃo รฉ conveniente usar Groovy sem usar IDE
  • Groovy pode ser mais lento, o que aumentou o tempo de desenvolvimento
  • Groovy pode precisar de muita memรณria
  • Conhecimento de Java รฉ imperativo.

Groovy Ferramentas

Discutiremos 3 ferramentas importantes neste Groovy tutorial de roteiro

1. groovysh: Executa cรณdigo de forma interativa.

2. groovyConsole: GUI para execuรงรฃo de cรณdigo interativo

3. bacana: executa scripts bacanas. Vocรช pode usรก-lo como Perl, Python, etc.

Groovysh

  • shell de linha de comando
  • Ajuda vocรช a executar Groovy codificar interativamente
  • Permite inserir declaraรงรตes ou scripts inteiros

Groovy Ferramentas

Groovy consolรก

  • Interface Swing que atua como um mรญnimo Groovy editor de desenvolvimento.
  • Permite que vocรช interaja Groovy cรณdigo
  • Ajuda vocรช a carregar e executar Groovy arquivos de script

Groovy Ferramentas

Groovy

ร‰ o processador que executa Groovy programas e scripts. Vocรช

Pode ser usado para testar simples Groovy expressรตes.

Groovy Ferramentas

Resumo

  • Groovy รฉ uma linguagem de programaรงรฃo orientada a objetos usada para Java plataforma
  • Groovy o script oferece integraรงรฃo perfeita com todos os existentes Java objetos e bibliotecas
  • Bob McWhirter e James Strachan desenvolveram o groovy em 2003
  • Literais de lista, mapa, intervalo e expressรตes regulares sรฃo recursos importantes de Groovy
  • Quatro tipos de operadores suportados por Groovy sรฃo 1. Relacional 2. Lรณgico 3. Bitwise 4. Atribuiรงรฃo
  • Groovy executou a tomada de decisรฃo usando instruรงรตes if, if/else, Nested if, switch, Netsted switch
  • A estrutura da lista permite armazenar uma coleรงรฃo de itens de dados
  • Um mapa Groovy รฉ uma coleรงรฃo de pares de valores-chave
  • In Groovy, Getters e setters sรฃo gerados automaticamente para membros da classe
  • In Java, vocรช pode usar o mรฉtodo fornecer getters e setters para campos
  • O maior mito sobre Groovy รฉ que ele sรณ pode ser usado para scripts que nรฃo estรฃo corretos
  • ร€s vezes Groovy pode ser mais lento, o que aumentou o tempo de desenvolvimento
  • Trรชs Groovy As ferramentas sรฃo: groovysh que executa cรณdigo, groovy Console que รฉ uma GUI para execuรงรฃo de cรณdigo interativo e groovy que executa scripts

Resuma esta postagem com: