Tutorial de script Groovy para iniciantes
O que é um script Groovy?
Apache Groovy é uma linguagem de programação orientada a objetos e compatível com a sintaxe Java criada para a plataforma Java. Essa linguagem dinâmica possui muitos recursos semelhantes ao Python, Ruby, Smalltalk e Pero. O código-fonte do Groovy é compilado no Java Bytecode para que possa ser executado em qualquer plataforma que tenha o JRE instalado. O Groovy também executa muitas tarefas nos bastidores, o que o torna mais ágil e dinâmico.
A linguagem Groovy pode ser usada como uma linguagem de script para a plataforma Java. É quase como uma super versão do Java que oferece os recursos corporativos do Java. Ele também oferece muitos recursos de produtividade, como suporte a DSL, fechamentos e digitação dinâmica. Ao contrário de algumas outras linguagens, ele foi projetado como um complemento, não um substituto para o Java.
Por que Groovy?
Aqui estão as principais razões pelas quais você deve usar e aprender Groovy-
- Groovy é uma linguagem ágil e dinâmica
- Integração perfeita com todos os objetos e bibliotecas Java existentes
- Parece fácil e natural para desenvolvedores Java
- Código mais conciso e significativo em comparação com Java
- Você pode usá-lo o quanto quiser com aplicativos Java
Histórico do Groovy
- 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:versão 2 do Groovy
- 2014:Groovy versão 2.3 (suporte oficial fornecido para JDK 8)
- 2015:Groovy tornou-se um projeto na Apache Software Foundation
Recursos do Groovy
- Lista, mapa, intervalo, literais de expressão regular
- Multimétodo e metaprogramação
- Classes e scripts Groovy geralmente são armazenados em arquivos .groovy
- Os scripts contêm instruções Groovy sem nenhuma 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 ao aplicativo Java tradicional.
- Suporte de nível de idioma para mapas, listas, expressões regulares
- Suporta fechamentos, tipagem dinâmica, protocolo de metaobjeto
- Suporte para digitação estática e dinâmica e sobrecarga de operadores
- Declaração literal para listas (arrays), mapas, intervalos e expressões regulares
Como instalar o Groovy
Etapa 1) Certifique-se de ter o Java instalado. https://www.guru99.com/install-java.html
Etapa 2) Vá para http://groovy-lang.org/download.html e clique em instalador.
Nota:Você também pode instalar o Groovy usando o arquivo Zip ou como um Eclipse IDE. Neste tutorial Groovy, vamos nos ater ao Windows Installer
Etapa 3) Inicie o instalador baixado. Selecione o idioma e clique em OK
Etapa 4) Lançar. Na tela de boas-vindas, clique em PRÓXIMO
Etapa 5) Concorde com os termos de licença
Etapa 6) Selecione os componentes que deseja instalar e clique em PRÓXIMO
Etapa 7) Selecione Diretório de Instalação e clique em PRÓXIMO
Etapa 8) Escolha a pasta do menu Iniciar e clique em PRÓXIMO
Etapa 9) Depois que a instalação estiver concluída, deixe os caminhos padrão e clique em PRÓXIMO
Etapa 10) Clique em PRÓXIMO
Etapa 11) No menu iniciar, procure o Groovy Console
Exemplo do Groovy Hello World
Considere que queremos imprimir uma string simples “Hello World” em Java. O código para alcançar a string Groovy hello world seria
public class Demo { public static void main(String args[]) { System.out.println("Hello World"); } }
O código acima é válido em Java e Groovy, pois Groovy é um superconjunto de Java. Mas a vantagem com o Groovy é que podemos acabar com a criação de classes, criação de métodos públicos, etc e obter a mesma saída com um código de linha única da seguinte forma:
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
Variáveis Groovy
Em Java, a ligação estática é obrigatória. Ou seja, 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 deste tutorial do Groovy, o tipo de variável (inteiro) é declarado antecipadamente usando a palavra-chave “int”. Se você fosse declarar um número de ponto flutuante, você usaria a palavra-chave float.
Se você tentar atribuir um valor String a um int (remova a linha #5), você receberá o seguinte erro
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
Por outro lado, o Groovy oferece suporte à digitação dinâmica. As variáveis são definidas usando a palavra-chave “def”, e o tipo de uma 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 groovy,
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
Resultado
class java.lang.Integer class java.lang.String
No Groovy, você pode criar strings de várias linhas. Apenas certifique-se de ter colocado a String entre aspas triplas.
def x = """Groovy at Guru99""" println x
Resultado
Groovy at Guru99
Observação :Você ainda pode tipos de variáveis como byte, short, int, long, etc com Groovy. Mas você não pode alterar dinamicamente o tipo de variável conforme 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
Operadores Groovy
Um operador é um símbolo que diz ao compilador para fazer certas manipulações matemáticas ou lógicas.
Groovy tem os seguintes cinco tipos de operadores –
- Operadores aritméticos:adicionar (+), subtrair (-), multiplicação (*), divisão (/)
- Operadores relacionais:igual a (==), Diferente de (!=), Menor que (<) Menor ou igual a (<=), Maior que (>), Maior ou igual a (>=)
- Operadores lógicos:E (&&), Ou(||), Não(!)
- Operadores bit a bit:operador And(&), Or(|), (^), Xor ou Exclusive-ou
- Operadores de atribuição:operador de negação (~)
Groovy-Loops
Em 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); } } }
Resultado
0 1 2 3 4
Você pode obter a mesma saída no Groovy usando até palavras-chave
0.upto(4) {println "$it"}
Você obtém a mesma saída acima. $é um fechamento que dá o valor do loop atual.
Considere o seguinte código
2.upto(4) {println "$it"}
Ele dá uma saída
2 3 4
Você também pode usar a palavra-chave “times” para obter a mesma saída
5.times{println "$it"}
Considere que você deseja imprimir 0,2,4 com loop for em Java
public class Demo { public static void main(String args[]) { for (int x = 0; x <= 5; x=x+2) { System.out.println(x); } } }
Resultado:
0 2 4
Você pode usar o método step para o mesmo
0.step(7,2){println "$it"}
Groovy- Tomada de decisão
Declarações | Enganação |
---|---|
Declaração if | Assim como em Java, a instrução if é executada se a condição for verdadeira. |
Declaração if/else | Na instrução if/else, primeiro uma condição é avaliada na instrução if. Se a condição for verdadeira, executa as instruções depois disso. Ele para antes da condição else e sai do loop. No entanto, se a condição for falsa, executa as instruções no bloco de instruções else. Em seguida, ele sai do loop. |
Instrução if aninhada | É usado quando há um requisito para ter várias instruções if. |
Declaração de troca | A instrução if-else aninhada pode se tornar ilegível quando você tem várias condições. Para tornar o código mais legível, a instrução switch é usada. |
Declaração do switch aninhado | No Groovy também é possível usar comandos switch aninhados. |
Lista legal
A estrutura de lista permite armazenar uma coleção de itens de dados. Em uma linguagem de programação Groovy, a Lista contém uma sequência de referências de objeto. Também mostra uma posição na sequência. Um literal List é apresentado como uma série de objetos separados por vírgulas e entre colchetes.
Exemplo de lista Grrovy:
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 os métodos de lista disponíveis no Groovy:
Métodos | Descrição |
---|---|
adicionar() | Permite que você anexe 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á vazio() | Retorna o valor verdadeiro se a Lista não contiver elementos |
menos() | Este comando permite que você crie uma nova Lista composta pelos elementos do original excluindo aqueles que estão especificados na coleção. |
mais() | Permite que você crie uma nova Lista composta pelos elementos do original juntamente com os mencionados na coleção. |
pop() | Remove o último item da Lista |
remover() | Remove o elemento na posição específica |
reverso() | Cria uma nova Lista que inverte os elementos da Lista original |
tamanho() | Retorna o número de elementos nesta lista |
classificar() | Retorna uma cópia ordenada |
Considere o seguinte exemplo de script Groovy
def y = ["Guru99", "is", "Best", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
Resultado
[Guru99, is, Best, for, Groovy] true Best Learning
Mapas interessantes
Um Map Groovy é uma coleção de pares de valores-chave
Exemplos de mapas Groovy:
- [Tutorial:‘Java, Tutorial:‘Groovy] – Coleção de pares chave-valor que tem Tutorial como chave e seus respectivos valores
- [ :] Representam um mapa vazio
Aqui está uma lista de métodos de mapa disponíveis no Groovy.
Métodos | Descrição |
---|---|
contémKey() | Verificar 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. |
KeySet() | Permite encontrar um conjunto de chaves neste Mapa |
colocar() | Associa o valor especificado com a chave fornecida neste Mapa. Se o Mapa anterior continha um mapeamento para esta chave. Em seguida, o valor antigo será substituído pelo valor especificado. |
tamanho() | Retorna o número de mapeamentos de valores-chave. |
valores() | Este comando retorna uma exibição de coleção dos valores. |
Exemplo Groovy:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
Resultado
Jen
Groovy- Fechamentos
Um encerramento groovy é um pedaço de código encapsulado como um objeto. Ele atua como um método ou uma função.
Exemplo de fechamento simples
def myClosure = { println "My First Closure" } myClosure()
Resultado:
My First Closure
Um fechamento pode aceitar parâmetros. A lista de identificações é separada por vírgulas 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)
Resultado
6
Um fechamento pode retornar um valor.
def myClosure = { a,b,c-> return (a+b+c) } println(myClosure(1,2,3))
Resultado
6
Existem muitos closures embutidos como “It”, “identity”, etc. Closures podem ter outros closures como parâmetros.
Groovy vs. Java
Alegre | Java |
---|---|
No 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. | Em 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á privado do pacote, |
Getters e setters são gerados automaticamente para os membros da classe. | Java, você precisa definir métodos getters e setters para campos |
O Groovy permite a substituição de variáveis usando aspas duplas com strings. | Java não suporta substituição de variáveis. |
Digitar informações é opcional. | Digitar informações é obrigatório em Java. |
Groovy, não é necessário terminar com ponto e vírgula. | Em Java, toda instrução termina com um ponto e vírgula. |
Groovy é automaticamente uma classe de encapsulamento chamada Script para cada programa | Em Java, você precisa do método main para tornar uma classe executável. |
Mitos sobre o Groovy
Mito | Realidade |
---|---|
Podemos usar o Groovy apenas para scripts. | Pode ser usado para scripts. No entanto, você pode executar muitas outras tarefas além dele. |
Groovy tem tudo a ver com fechamentos. “É apenas uma linguagem de programação funcional.” | Groovy adota linguagens de programação funcionais como Lisp ou Closure. |
Groovy é a escolha ideal se você quer fazer TDD | Esta afirmação é verdadeira. No entanto, certamente não é a única razão para usar o Groovy. |
Você pode usar Groovy apenas se quiser usar Grails. | Grails é um poderoso framework de desenvolvimento web. Mas o Groovy oferece mais do que isso. |
Contras do uso do Groovy
- A hora de início do script JVM e Groovy é lenta, o que limita o script no nível do SO
- Groovy não é totalmente aceito em outras comunidades.
- Não é conveniente usar o Groovy sem usar o IDE
- Groovy pode ser mais lento, o que aumenta o tempo de desenvolvimento
- O Groovy pode precisar de muita memória
- Conhecimento de Java é imperativo.
Ferramentas Groovy
Discutiremos 3 ferramentas importantes neste tutorial de script Groovy
1. groovysh:Executa o código interativamente.
2. groovyConsole:GUI para execução interativa de código
3. groovy:Executa scripts groovy. Você pode usá-lo como Perl, Python, etc.
Groovysh
- shell de linha de comando
- Ajuda você a executar código Groovy interativamente
- Permite inserir declarações ou scripts inteiros
Console Groovy
- Interface Swing que atua como um editor de desenvolvimento Groovy mínimo.
- Permite que você interaja com o código Groovy
- Ajuda você a carregar e executar arquivos de script Groovy
Bom
É o processador que executa programas e scripts Groovy. você
Ele pode ser usado para testar expressões Groovy simples.
Resumo
- Groovy é uma linguagem de programação orientada a objetos usada para a plataforma Java
- O script Groovy oferece integração perfeita com todos os objetos e bibliotecas Java existentes
- Bob McWhirter e James Strachan desenvolveram o groovy em 2003
- Lista, mapa, intervalo, literais de expressão regular são recursos importantes do Groovy
- Quatro tipos de operadores suportados pelo Groovy são 1. Relacional 2.Lógico 3. Bitwise 4. Atribuição
- Groovy executou a tomada de decisão usando if, if/else, aninhado if, switch, instruções switch Netsted
- A estrutura da lista permite que você armazene uma coleção de itens de dados
- Um Map Groovy é uma coleção de pares de valores-chave
- No Groovy, getters e setters são gerados automaticamente para os membros da classe
- Em Java, você pode usar o método fornecer getters e setters para campos
- O maior mito sobre o Groovy é que ele só pode ser usado para scripts que não estão corretos
- Algum tempo, o Groovy pode ser mais lento, o que aumenta o tempo de desenvolvimento
- Três ferramentas Groovy são:groovysh que executa código, groovy Console que é GUI para execução interativa de código e groovy que executa scripts
Java
- Java para loop
- Construir robôs Raspberry Pi:Melhor tutorial para iniciantes
- Roteadores CNC para iniciantes
- Tutorial do Powershell para iniciantes:Aprenda o script do Powershell
- Linguagem de Programação C PDF:Tutorial Básico para Iniciantes
- Tutorial Java Arrays:Declare, Crie, Inicialize [Exemplo]
- Pilha e Heap Java:Tutorial de Alocação de Memória Java
- Armstrong Number no programa JAVA usando For Loop
- Programa Palindrome Number em Java usando while &for Loop
- Uma visão geral para iniciantes:o que é fabricação de metal?