Tutorial de script Groovy para principiantes

¿Qué es un guión maravilloso?

Apache Groovy es un lenguaje de programación orientado a objetos y compatible con la sintaxis Java creado para la plataforma Java. Este lenguaje dinámico tiene muchas características similares a Python, Ruby, Smalltalk y Pero. El código fuente de Groovy se compila en Java Bytecode para que pueda ejecutarse en cualquier plataforma que tenga JRE instalado. Groovy también realiza muchas tareas detrás de escena, lo que lo hace más ágil y dinámico.

El lenguaje Groovy se puede utilizar como lenguaje de programación para la plataforma Java. Es casi como una súper versión de Java que ofrece las capacidades empresariales de Java. También ofrece muchas funciones de productividad como compatibilidad con DSL, cierres y escritura dinámica. A diferencia de otros lenguajes, está diseñado como complemento, no como reemplazo de Java.

¿Por qué maravilloso?

A continuación se detallan las principales razones por las que debería utilizar y aprender Groovy-

  • Groovy es un lenguaje ágil y dinámico
  • Integración perfecta con todos los objetos y bibliotecas Java existentes
  • Parece fácil y natural para los desarrolladores de Java.
  • Compilación de código más concisa y significativaares a Java
  • Puedes usarlo tanto o tan poco como quieras con aplicaciones Java.

Historia maravillosa

  • 2003: Desarrollado por Bob McWhirter y James Strachan
  • 2004: Encargado en JSR 241 pero fue abandonado
  • 2005: Recuperado por Jeremy Rayner y Guillaume Laforge
  • 2007: maravillosa versión 1.0
  • 2012: maravillosa versión 2
  • 2014: Groovy versión 2.3 (soporte oficial proporcionado para JDK 8)
  • 2015: Groovy se convirtió en un proyecto de Apache Software Foundation

Características de Groovy

  • Lista, mapa, rango, literales de expresiones regulares
  • Multimétodo y metaprogramación
  • Las clases y scripts de Groovy generalmente se almacenan en archivos .groovy.
  • Los scripts contienen declaraciones Groovy sin ninguna declaración de clase.
  • Los scripts también pueden contener definiciones de métodos fuera de las definiciones de clases.
  • Puede compilarse e integrarse completamente con una aplicación Java tradicional.
  • Soporte de nivel de idioma para mapas, listas y expresiones regulares.
  • Admite cierres, escritura dinámica y protocolo de metaobjetos.
  • Soporte para escritura estática y dinámica y sobrecarga de operadores
  • Declaración literal para listas (matrices), mapas, rangos y expresiones regulares

Cómo instalar Groovy

Paso 1) Asegúrate de que tienes java instalado.

Paso 2) Ve a http://groovy-lang.org/download.html y haga clic en instalador.

instalar maravilloso

Nota: También puedes instalar Groovy usando el archivo Zip o como un Eclipse IDE. En este tutorial de Groovy, nos ceñiremos a Windows Instalador

Paso 3) Inicie el instalador descargado. Seleccione el idioma y haga clic en Aceptar

instalar maravilloso

Paso 4) Lanzamiento. En la pantalla de bienvenida, haga clic en SIGUIENTE

instalar maravilloso

Paso 5) De acuerdo con los términos de la licencia.

instalar maravilloso

Paso 6) Seleccione los componentes que desea instalar y haga clic en SIGUIENTE

instalar maravilloso

Paso 7) Seleccione Directorio de instalación y haga clic en SIGUIENTE

instalar maravilloso

Paso 8) Elija la carpeta del menú Inicio y haga clic en SIGUIENTE

instalar maravilloso

Paso 9) Una vez finalizada la instalación, deje las rutas predeterminadas y haga clic en SIGUIENTE

instalar maravilloso

Paso 10) Haga clic en Siguiente

instalar maravilloso

Paso 11) En el menú Inicio busque Groovy Console

instalar maravilloso

Ejemplo maravilloso de Hola mundo

Considere que queremos imprimir una cadena simple "Hola mundo" en Java. El código para lograr la cadena Groovy hola mundo sería

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

El código anterior es válido tanto en Java como en Groovy, ya que Groovy es un superconjunto de Java. Pero la ventaja de Groovy es que podemos eliminar la creación de clases, la creación de métodos públicos, etc. y lograr el mismo resultado con un código de una sola línea de la siguiente manera:

println "Hello World."

No hay necesidad de punto y coma

No hay necesidad de paréntesis

System.out.println se reduce a println

Variables geniales

En Java, el enlace estático es obligatorio. Es decir, el tipo de variable debe declararse de antemano.

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

En el ejemplo anterior de este tutorial de Groovy, el tipo de variable (entero) se declara de antemano utilizando la palabra clave "int". Si tuviera que declarar un número de punto flotante, utilizaría la palabra clave float.

Si intenta asignar un valor de cadena a un int (línea de comentario n.° 5), obtendrá lo siguientewing error

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

Por el contrario, Groovy admite la escritura dinámica. Las variables se definen utilizando la palabra clave "def" y no es necesario declarar el tipo de variable de antemano. El compilador descubre el tipo de variable en tiempo de ejecución y usted puede incluso determinar el tipo de variable.

Considere lo siguientewing ejemplo maravilloso,

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

Salida:

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

En Groovy, puedes crear cadenas de varias líneas. Solo asegúrese de incluir la cadena entre comillas triples.

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

Salida:

Groovy
at
Guru99

Note: Aún puedes usar tipos de variables como byte, short, int, long, etc. con Groovy. Pero no puede cambiar dinámicamente el tipo de variable como lo ha declarado explícitamente.

Considere lo siguientewing código:

int x = 104
println x
x = "Guru99"

da el siguientewing error

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 maravillosos

Un operador es un símbolo que le indica al compilador que realice ciertas manipulaciones matemáticas o lógicas.

Groovy tiene el siguientewing cinco tipos de operadores –

  • Operadores aritméticos: Sumar (+), Restar (-), Multiplicación (*), División(/)
  • Operadores relacionales: igual a (==), distinto de (!=), menor que (), mayor o igual a (>=)
  • Operadores lógicos: y (&&), o (||), no (!)
  • Pocowise operadores: Y(&), O(|), (^), Xor o operador exclusivo-or
  • Operadores de asignación: Operador de negación (~)

Bucles maravillosos

En Java, definirías un bucle de la siguiente manera

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

Salida:

0
1
2
3
4

Puede lograr el mismo resultado en Groovy usando hasta palabras clave

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

Obtienes el mismo resultado que el anterior. $es un cierre que da el valor del bucle actual.

Considere lo siguientewing código

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

Da una salida

2
3
4

También puede utilizar la palabra clave "veces" para obtener el mismo resultado.

5.times{println "$it"}

Considere que desea imprimir 0,2,4 con para bucle en Java

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

Salida:

0
2
4

Puedes usar el método paso a paso para lo mismo.

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

Groovy- Toma de decisiones

Declaraciones Decepción
si declaración Como en Java, la sentencia if se ejecuta si la condición es verdadera.
Declaración si/si no En la declaración if/else, al principio se evalúa una condición en la declaración if. Si la condición es verdadera, ejecuta las declaraciones posteriores. Se detiene antes de la condición else y sale del bucle. Sin embargo, si la condición es falsa, ejecuta las declaraciones en el bloque de declaraciones else. Luego sale del bucle.
Declaración If anidada Se utiliza cuando es necesario tener varias declaraciones if.
Declaración de cambio La declaración if-else anidada podría volverse ilegible cuando tiene varias condiciones. Para hacer que el código sea más legible, se utiliza la declaración de cambio.
Declaración de cambio anidado En Groovy también es posible utilizar declaraciones de cambio anidadas.

Lista maravillosa

La estructura de lista le permite almacenar una colección de elementos de datos. En un lenguaje de programación Groovy, la Lista contiene una secuencia de referencias de objetos. También muestra una posición en la secuencia. Un literal de lista se presenta como una serie de objetos separados por comas y encerrados en un cuadrado. brackets.

Ejemplo de lista de Grrovy:

Una lista de cadenas- ['Angular', 'Nodejs,]

Una lista de referencias de objetos – [‘Groovy’, 2,4 2.6]

Una lista de valores enteros – [16, 17, 18, 19]

Una lista vacía- [ ]

Following Hay métodos de lista disponibles en Groovy:

Métodos Descripción
añadir() Le permite agregar el nuevo valor al final de esta Lista.
contiene () Devuelve verdadero si esta Lista contiene un valor determinado.
get () Devuelve el elemento en la posición definida.
esta vacio() Devuelve valor verdadero si la Lista no contiene elementos
menos() Este comando le permite crear una nueva Lista compuesta por los elementos del original excluyendo aquellos que están especificados en la colección.
más() Le permite crear una nueva Lista compuesta por los elementos del original junto con los mencionados en la colección.
popular() Elimina el último elemento de la lista.
eliminar() Elimina el elemento en la posición específica.
contrarrestar () Cree una nueva Lista que invierta los elementos de la Lista original
Talla() Devuelve el número de elementos de esta lista.
ordenar() Devuelve una copia ordenada

Considere lo siguientewing Ejemplo de guión maravilloso

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

Salida:

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

Mapas maravillosos

Un Map Groovy es una colección de pares clave-valor

Ejemplos de mapas Groovy:

  • [Tutorial: 'Java, Tutorial:' Groovy] – Colección de pares clave-valor que tiene Tutorial como clave y sus respectivos valores
  • [:] Representa un mapa vacío

Aquí hay una lista de métodos de mapas disponibles en Groovy.

Métodos Descripción
contiene clave() ¿Comprueba que el mapa contiene esta clave o no?
get () Este comando busca la clave en este mapa y devuelve el valor correspondiente. Si no encuentra ninguna entrada en este mapa, devolverá nulo.
juego de llaves() Permite encontrar un juego de claves en este Mapa.
poner() Asocia el valor especificado con la clave proporcionada en este mapa. Si el mapa anteriormente contenía una asignación para esta clave. Luego, el valor anterior será reemplazado por el valor especificado.
Talla() Devuelve el número de asignaciones clave-valor.
valores () Este comando devuelve una vista de colección de los valores.

Ejemplo maravilloso:

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

Salida

Jen

Groovy- Cierres

Un cierre maravilloso es un fragmento de código envuelto como un objeto. Actúa como un método o una función.

Ejemplo de cierre simple

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

Salida:

My First Closure

Un cierre puede aceptar parámetros. La lista de identificaciones está separada por comas

una flecha (->) que marca el final de la lista de parámetros.

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

Salida:

6

Un cierre puede devolver un valor.

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

Salida:

6

Hay muchos cierres integrados como "Eso", "identidad", etc. Los cierres pueden tomar otros cierres como parámetros.

Groovy vs. Java

Maravilloso Java
En Groovy, el especificador de acceso predeterminado es público. Significa que un método sin ningún modificador de acceso especificado es público y accesible fuera de los límites de la clase y el paquete. En Java, el modificador de acceso predeterminado es un paquete, es decir, si no especifica un modificador de acceso para campos, métodos o clases, se convierte en paquete privado.
Los captadores y definidores se generan automáticamente para los miembros de la clase. Java, necesitas definir métodos getters y setters para campos
Groovy permite la sustitución de variables usando double comillas con cadenas. Java no admite la sustitución de variables.
Escribir información es opcional. Escribir información es obligatorio en Java.
Groovy no es necesario que termine con punto y coma. En Java, cada declaración termina con un punto y coma.
Groovy es automáticamente una clase envolvente llamada Script para cada programa. En Java, necesitas el método principal para hacer que una clase sea ejecutable.

Mitos sobre Groovy

Myth Realidad
Podemos usar Groovy solo para secuencias de comandos. Se puede utilizar para secuencias de comandos. Sin embargo, puedes realizar muchas otras tareas además de esto.
Groovy tiene que ver con cierres. “Es sólo lenguaje de programación funcional." Groovy adopta lenguajes de programación funcionales como Lisp o Closure.
Groovy es una opción ideal si quieres hacer TDD Esta afirmación es cierta. Sin embargo, ciertamente no es la única razón para utilizar Groovy.
Puedes usar Groovy solo si quieres usar Grails. Grails es un poderoso marco de desarrollo web.

Pero Groovy ofrece más que eso.

Contras de usar Groovy

  • El tiempo de inicio de los scripts de JVM y Groovy es lento, lo que limita los scripts a nivel del sistema operativo.
  • Groovy no es del todo aceptado en otras comunidades.
  • No es conveniente usar Groovy sin usar IDE
  • Groovy puede ser más lento, lo que aumenta el tiempo de desarrollo.
  • Groovy puede necesitar mucha memoria
  • El conocimiento de Java es imprescindible.

Herramientas maravillosas

Discutiremos 3 herramientas importantes en este tutorial de script de Groovy.

1. groovysh: ejecuta código de forma interactiva.

2. groovyConsole: GUI para ejecución de código interactivo

3. maravilloso: ejecuta scripts maravillosos. Puedes usarlo como Perl, Python, etc.

maravilloso

  • shell de línea de comandos
  • Le ayuda a ejecutar código Groovy de forma interactiva
  • Permite ingresar declaraciones o guiones completos.

Herramientas maravillosas

Consola maravillosa

  • Swing interfaz que actúa como un editor de desarrollo Groovy mínimo.
  • Le permite interactuar con el código Groovy
  • Le ayuda a cargar y ejecutar archivos de script Groovy

Herramientas maravillosas

Maravilloso

Es el procesador el que ejecuta programas y scripts de Groovy. Ud.

Se puede utilizar para probar expresiones Groovy simples.

Herramientas maravillosas

Resumen

  • Groovy es un lenguaje de programación orientado a objetos utilizado para la plataforma Java.
  • Los scripts Groovy ofrecen una integración perfecta con todos los objetos y bibliotecas Java existentes.
  • bob mcWhirter & James Strachan desarrollaron groovy en 2003
  • Lista, mapa, rango y literales de expresiones regulares son características importantes de Groovy
  • Cuatro tipos de operadores admitidos por Groovy son 1. Relacional 2. Lógico 3. Bitwise 4. Asignación
  • Groovy realizó la toma de decisiones utilizando declaraciones if, if/else, Nested if, switch, Netsted switch
  • La estructura de lista le permite almacenar una colección de elementos de datos
  • Un Map Groovy es una colección de pares clave-valor
  • En Groovy, los captadores y definidores se generan automáticamente para los miembros de la clase.
  • En Java, puede utilizar el método de obtención y configuración para los campos.
  • El mayor mito sobre Groovy es que solo se puede utilizar para secuencias de comandos, lo cual no es correcto.
  • En algún momento, Groovy puede ser más lento, lo que aumenta el tiempo de desarrollo.
  • Tres herramientas de Groovy son: groovysh que ejecuta código, groovy Console que es una GUI para la ejecución de código interactivo y groovy que ejecuta scripts.