Groovy Script-tutorial voor beginners

Wat is een groovy-script?

Apache Groovy is een objectgeoriënteerde en Java-syntaxiscompatibele programmeertaal gebouwd voor het Java-platform. Deze dynamische taal heeft veel functies die vergelijkbaar zijn met Python, Ruby, Smalltalk en Pero. Groovy broncode wordt gecompileerd in Java Bytecode, zodat deze kan worden uitgevoerd op elk platform waarop JRE is geïnstalleerd. Groovy voert ook veel taken achter de schermen uit, waardoor het wendbaarder en dynamischer wordt.

Groovy-taal kan worden gebruikt als scripttaal voor het Java-platform. Het lijkt bijna op een superversie van Java die de zakelijke mogelijkheden van Java biedt. Het biedt ook veel productiviteitsfuncties, zoals DSL-ondersteuning, afsluitingen en dynamisch typen. In tegenstelling tot sommige andere talen is het ontworpen als aanvulling op Java en niet als vervanging.

Waarom Groovy?

Hier volgen de belangrijkste redenen waarom u Groovy zou moeten gebruiken en leren:

  • Groovy is een behendige en dynamische taal
  • Naadloze integratie met alle bestaande Java-objecten en bibliotheken
  • Voelt gemakkelijk en natuurlijk aan voor Java-ontwikkelaars
  • Beknoptere en betekenisvollere codecompares naar Java
  • Je kunt het zo veel of zo weinig gebruiken als je wilt met Java-apps

Groovy geschiedenis

  • 2003: Ontwikkeld door Bob McWhirter & James Strachan
  • 2004: In gebruik genomen in JSR 241, maar deze werd verlaten
  • 2005: teruggebracht door Jeremy Rayner en Guillaume Laforge
  • 2007: Groovy-versie 1.0
  • 2012: Groovy-versie 2
  • 2014: Groovy versie 2.3 (officiële ondersteuning gegeven voor JDK 8)
  • 2015: Groovy werd een project bij Apache Software Foundation

Kenmerken van Groovy

  • Lijst, kaart, bereik, letterlijke expressies
  • Multimethode en metaprogrammering
  • Groovy-klassen en -scripts worden meestal opgeslagen in .groovy-bestanden
  • Scripts bevatten Groovy-instructies zonder enige klassendeclaratie.
  • Scripts kunnen ook methodedefinities bevatten buiten de klassendefinities.
  • Het kan worden gecompileerd en volledig worden geïntegreerd met de traditionele Java-applicatie.
  • Ondersteuning op taalniveau voor kaarten, lijsten en reguliere expressies
  • Ondersteunt sluitingen, dynamisch typen, metaobjectprotocol
  • Ondersteuning voor statisch en dynamisch typen en overbelasting door operators
  • Letterlijke declaratie voor lijsten (arrays), kaarten, bereiken en reguliere expressies

Hoe Groovy te installeren

Stap 1) Zorg ervoor dat je dat hebt gedaan Java geïnstalleerd.

Stap 2) Ga naar http://groovy-lang.org/download.html en klik op installatieprogramma.

Groovy installeren

Let op: Je kunt Groovy ook installeren met behulp van het Zip-bestand of als Eclipse IDE. In deze Groovy-tutorial houden we ons hieraan Windows Installer

Stap 3) Start het gedownloade installatieprogramma. Selecteer taal en klik op OK

Groovy installeren

Stap 4) Launch. Klik in het welkomstscherm op VOLGENDE

Groovy installeren

Stap 5) Ga akkoord met de licentievoorwaarden

Groovy installeren

Stap 6) Selecteer componenten die u wilt installeren en klik op VOLGENDE

Groovy installeren

Stap 7) Selecteer Installatiemap en klik op VOLGENDE

Groovy installeren

Stap 8) Kies Startmenumap en klik op VOLGENDE

Groovy installeren

Stap 9) Zodra de installatie is voltooid, laat u de paden op de standaardinstellingen staan ​​en klikt u op VOLGENDE

Groovy installeren

Stap 10) Klik volgende

Groovy installeren

Stap 11) Zoek in het startmenu naar Groovy Console

Groovy installeren

Groovy Hello World-voorbeeld

Stel dat we een eenvoudige string "Hallo wereld" in Java willen afdrukken. De code om de string Groovy hello world te bereiken zou zijn

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

De bovenstaande code is geldig in zowel Java als Groovy, aangezien Groovy een superset van Java is. Maar het voordeel van Groovy is dat we het maken van klassen, het maken van openbare methoden, enz. kunnen afschaffen en dezelfde uitvoer kunnen bereiken met een code van één regel, als volgt:

println "Hello World."

Er zijn geen puntkomma's nodig

Er zijn geen haakjes nodig

System.out.println wordt gereduceerd tot println

Groovy variabelen

In Java is statische binding verplicht. Dit betekent dat het type van een variabele vooraf moet worden gedeclareerd.

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

In het bovenstaande voorbeeld van deze Groovy-tutorial wordt het type variabele (geheel getal) vooraf gedeclareerd met behulp van het trefwoord “int”. Als u een getal met drijvende komma zou declareren, gebruikt u het trefwoord float.

Als u probeert een String-waarde toe te wijzen aan een int (commentaarregel #5), krijgt u het volgendewing fout

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

Groovy ondersteunt daarentegen dynamisch typen. Variabelen worden gedefinieerd met het sleutelwoord “def”, en het type van een variabele hoeft niet vooraf te worden gedeclareerd. De compiler berekent het variabeletype tijdens runtime en u kunt zelfs het variabeletype bepalen.

Denk eens aan het volgendewing hip voorbeeld,

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

Output:

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

In Groovy kun je strings met meerdere regels maken. Zorg ervoor dat u de String tussen drievoudige aanhalingstekens plaatst.

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

Output:

Groovy
at
Guru99

Note: Je kunt nog steeds variabele typen zoals byte, short, int, long, enz. gebruiken met Groovy. Maar u kunt het variabeletype niet dynamisch wijzigen zoals u het expliciet hebt gedeclareerd.

Denk eens aan het volgendewing code:

int x = 104
println x
x = "Guru99"

Het geeft de volgende informatiewing fout

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-Operators

Een operator is een symbool dat de compiler vertelt bepaalde wiskundige of logische manipulaties uit te voeren.

Groovy heeft het volgendewing vijf soorten operators –

  • Rekenkundige operatoren: optellen (+), aftrekken (-), vermenigvuldigen (*), delen(/)
  • Relationele operatoren: gelijk aan (==), Niet gelijk aan (!=), Kleiner dan (<) Kleiner dan of gelijk aan (<=), Groter dan (>), Groter dan of gelijk aan (>=)
  • Logische operatoren: And (&&), Or(||), Not(!)
  • Beetjewise operatoren: And(&), Or(|), (^), Xor of Exclusive-or operator
  • Toewijzingsoperatoren: Negatie-operator (~)

Groovy-loops

In Java zou je een lus als volgt definiëren

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

Output:

0
1
2
3
4

Je kunt dezelfde output bereiken in Groovy met behulp van maximaal trefwoorden

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

Je krijgt dezelfde output als hierboven. $it is een afsluiting die de waarde van de huidige lus geeft.

Denk eens aan het volgendewing code

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

Het geeft een output

2
3
4

U kunt ook het trefwoord ‘times’ gebruiken om dezelfde uitvoer te krijgen

5.times{println "$it"}

Stel je voor dat je 0,2,4 wilt afdrukken for-lus in Java

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

Output:

0
2
4

U kunt hiervoor de stapmethode gebruiken

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

Groovy - Besluitvorming

verklaringen Bedrog
if-verklaring Net als in Java wordt de if-instructie uitgevoerd als de voorwaarde waar is.
if/else-verklaring In de if/els-instructie wordt eerst een voorwaarde geëvalueerd in de if-instructie. Als de voorwaarde waar is, worden de instructies daarna uitgevoerd. Het stopt vóór de else-voorwaarde en verlaat de lus. Als de voorwaarde echter onwaar is, worden de instructies in het else-instructieblok uitgevoerd. Vervolgens verlaat het de lus.
Geneste If-instructie Het wordt gebruikt als er meerdere if-instructies nodig zijn.
Switch-instructie De geneste if-else-instructie kan onleesbaar worden als u meerdere voorwaarden heeft. Om de code leesbaarder te maken, wordt een switch-instructie gebruikt.
Geneste Switch-verklaring In Groovy is het ook mogelijk om geneste switch-instructies te gebruiken.

Groovy lijst

Met de lijststructuur kunt u een verzameling gegevensitems opslaan. In een Groovy-programmeertaal bevat de lijst een reeks objectreferenties. Het toont ook een positie in de reeks. Een letterlijke lijst wordt weergegeven als een reeks objecten, gescheiden door komma's en omsloten door een vierkant brackets.

Voorbeeld van een Grrovy-lijst:

Een lijst met strings- ['Angular', 'Nodejs,]

Een lijst met objectreferenties – ['Groovy', 2,4 2.6]

Een lijst met gehele getallen – [16, 17, 18, 19]

Een lege lijst- [ ]

Following zijn lijstmethoden beschikbaar in Groovy:

Methoden Omschrijving
toevoegen() Hiermee kunt u de nieuwe waarde aan het einde van deze lijst toevoegen.
bevat() Geeft waar terug als deze lijst een bepaalde waarde bevat.
krijgen() Geeft het element terug op de definitieve positie
is leeg() Retourneert de echte waarde als Lijst geen elementen bevat
minus() Met deze opdracht kunt u een nieuwe lijst maken die is samengesteld uit de elementen van het origineel, met uitzondering van de elementen die in de verzameling zijn gespecificeerd.
plus() Hiermee kunt u een nieuwe lijst maken die is samengesteld uit de elementen van het origineel en de elementen die in de collectie zijn vermeld.
knal() Verwijdert het laatste item uit de lijst
verwijderen() Verwijdert het element op de specifieke positie
omgekeerde() Maak een nieuwe lijst die de elementen van de oorspronkelijke lijst omkeert
grootte() Retourneert het aantal elementen in deze lijst
soort() Retourneert een gesorteerde kopie

Denk eens aan het volgendewing Groovy scriptvoorbeeld

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

Output:

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

Hippe kaarten

Een Map Groovy is een verzameling sleutelwaardeparen

Voorbeelden van Groovy-kaarten:

  • [Tutorial: 'Java, Tutorial: 'Groovy] - Verzameling van sleutel-waardeparen met Tutorial als sleutel en hun respectieve waarden
  • [: ] Vertegenwoordigt een lege kaart

Hier is een lijst met kaartmethoden die beschikbaar zijn in Groovy.

Methoden Omschrijving
bevatSleutel() Controleer of de kaart deze sleutel bevat of niet?
krijgen() Met deze opdracht wordt de sleutel in deze kaart opgezocht en wordt de bijbehorende waarde geretourneerd. Als u geen enkel item op deze kaart vindt, retourneert deze null.
sleutelbos() Maakt het mogelijk om een ​​set sleutels op deze kaart te vinden
zetten() Koppelt de opgegeven waarde aan de opgegeven sleutel in deze kaart. Als de kaart eerder een toewijzing voor deze sleutel bevatte. Vervolgens wordt de oude waarde vervangen door de opgegeven waarde.
grootte() Retourneert het aantal sleutelwaardetoewijzingen.
waarden () Deze opdracht retourneert een verzamelingsweergave van de waarden.

Groovy voorbeeld:

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

uitgang

Jen

Groovy-sluitingen

Een groovy sluiting is een stukje code dat als object is verpakt. Het fungeert als een methode of een functie.

Voorbeeld van eenvoudige sluiting

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

Output:

My First Closure

Een sluiting kan parameters accepteren. De lijst met identificatiegegevens wordt door komma's gescheiden

een pijl (->) die het einde van de parameterlijst markeert.

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

Output:

6

Een afsluiting kan een waarde retourneren.

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

Output:

6

Er zijn veel ingebouwde sluitingen zoals “It”, “identiteit”, enz. Sluitingen kunnen andere sluitingen als parameters gebruiken.

Groovy versus. Java

groovy Java
In Groovy is de standaardtoegangsspecificatie openbaar. Het betekent dat een methode zonder enige gespecificeerde toegangsmodificator openbaar is en toegankelijk is buiten de klassen- en pakketgrenzen. In Java is de standaard toegangsmodifier een pakket, dwz als u de toegangsmodifier niet opgeeft voor velden, methoden of klasse, wordt deze pakket-privé.
Getters en setters worden automatisch gegenereerd voor klasleden. Java, u moet de getters- en setters-methode voor velden definiëren
Groovy maakt variabele vervanging mogelijk double aanhalingstekens met tekenreeksen. Java ondersteunt geen vervanging van variabelen.
Het typen van informatie is optioneel. Het typen van informatie is verplicht in Java.
Groovy, het is niet nodig om te eindigen met een puntkomma. In Java eindigt elke instructie met een puntkomma.
Groovy is automatisch een inpakklasse met de naam Script voor elk programma In Java heb je de hoofdmethode nodig om een ​​klasse uitvoerbaar te maken.

Mythen over Groovy

Mythe Realiteit
We kunnen Groovy alleen voor scripting gebruiken. Het kan worden gebruikt voor scripting. U kunt echter nog veel meer andere taken uitvoeren.
Bij Groovy draait alles om sluitingen. "Het is gewoon functionele programmeertaal. ' Groovy is gebaseerd op functionele programmeertalen zoals Lisp of Closure.
Groovy is een ideale keuze als je TDD wilt doen Deze verklaring is waar. Het is echter zeker niet de enige reden om Groovy te gebruiken.
Je kunt Groovy alleen gebruiken als je Grails wilt gebruiken. Grails is een krachtig raamwerk voor webontwikkeling.

Maar Groovy biedt meer dan dat.

Nadelen van het gebruik van Groovy

  • De starttijd van JVM- en Groovy-scripts is traag, wat scripting op besturingssysteemniveau beperkt
  • Groovy wordt niet volledig geaccepteerd in andere gemeenschappen.
  • Het is niet handig om Groovy te gebruiken zonder IDE te gebruiken
  • Groovy kan langzamer zijn, waardoor de ontwikkeltijd toeneemt
  • Groovy heeft mogelijk veel geheugen nodig
  • Kennis van Java is noodzakelijk.

Grove tools

We bespreken 3 belangrijke tools in deze Groovy script-tutorial

1. groovysh: voert code interactief uit.

2. groovyConsole: GUI voor interactieve code-uitvoering

3. groovy: voert groovy-scripts uit. Je kunt het gebruiken als Perl, Python, Etc.

Groovysh

  • opdrachtregel-shell
  • Helpt u Groovy-code interactief uit te voeren
  • Maakt het invoeren van instructies of hele scripts mogelijk

Grove tools

Grove console

  • Swing interface die fungeert als een minimale Groovy-ontwikkelingseditor.
  • Hiermee kunt u Groovy-code gebruiken
  • Helpt u bij het laden en uitvoeren van Groovy-scriptbestanden

Grove tools

groovy

Het is de processor die Groovy-programma's en scripts uitvoert. U

Het kan worden gebruikt om eenvoudige Groovy-uitdrukkingen te testen.

Grove tools

Samengevat

  • Groovy is een objectgeoriënteerde programmeertaal die wordt gebruikt voor het Java-platform
  • Groovy scripting biedt naadloze integratie met alle bestaande Java-objecten en -bibliotheken
  • Bob McWhirter & James Strachan ontwikkelden groovy in 2003
  • Lijst, kaart, bereik en letterlijke expressies zijn belangrijke kenmerken van Groovy
  • Vier typen operators die door Groovy worden ondersteund, zijn 1. Relationeel 2. Logisch 3. Bitwise 4. toewijzing
  • Groovy voerde de besluitvorming uit met behulp van if, if/els, Nested if, switch, Netsted switch-instructies
  • Met de lijststructuur kunt u een verzameling gegevensitems opslaan
  • Een Map Groovy is een verzameling sleutelwaardeparen
  • In Groovy worden automatisch Getters en Setters gegenereerd voor klasleden
  • In Java kunt u de methode Getters en Setters voor velden gebruiken
  • De grootste mythe over Groovy is dat het alleen kan worden gebruikt voor scripting die niet correct is
  • Enige tijd kan Groovy langzamer zijn, waardoor de ontwikkeltijd toeneemt
  • Drie Groovy Tools zijn: groovysh die code uitvoert, groovy Console die een GUI is voor interactieve code-uitvoering en groovy die scripts uitvoert