Groovy Scripttutorial voor beginners

Wat is een Groovy Script?

apache Groovy is een objectgeoriënteerde en Java syntaxis-compatibele programmeertaal gebouwd voor de Java platform. Deze dynamische taal heeft veel kenmerken die vergelijkbaar zijn met Python, Ruby, Smalltalk en Pero. Groovy broncode wordt gecompileerd Java Bytecode zodat het kan draaien 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 de Java platform. Het is bijna een superversie van Java welke aanbiedingen Java's ondernemingsmogelijkheden. Het biedt ook veel productiviteitsfuncties, zoals DSL-ondersteuning, afsluitingen en dynamisch typen. In tegenstelling tot sommige andere talen is het bedoeld als aanvulling en niet als vervanging ervan Java.

Waarom Groovy?

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

  • Groovy is een behendige en dynamische taal
  • Naadloze integratie met alle bestaande Java objecten en bibliotheken
  • Voelt gemakkelijk en natuurlijk aan Java ontwikkelaars
  • Bondigere en betekenisvollere code vergeleken met Java
  • Je kunt het zo veel of zo weinig gebruiken als je wilt 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 verklaringen zonder enige klassendeclaratie.
  • Scripts kunnen ook methodedefinities bevatten buiten de klassendefinities.
  • Het kan worden samengesteld en volledig worden geïntegreerd met traditioneel Java toepassing.
  • Ondersteuning op taalniveau voor kaarten, lijsten en reguliere expressies
  • Ondersteunt sluitingen, dynamisch typen, metaobjectprotocol
  • Ondersteuning voor statisch en dynamisch typen en operatoroverbelasting
  • Letterlijke declaratie voor lijsten (arrays), kaarten, bereiken en reguliere expressies

Hoe te installeren Groovy

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.

installeren Groovy

Opmerking: u kunt ook installeren Groovy met behulp van het zip-bestand of als een Eclipse IDE. In deze Groovy tutorial, we zullen ons eraan houden Windows Installer

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

installeren Groovy

Stap 4) Launch. Klik in het welkomstscherm op VOLGENDE

installeren Groovy

Stap 5) Ga akkoord met de licentievoorwaarden

installeren Groovy

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

installeren Groovy

Stap 7) Selecteer Installatiemap en klik op VOLGENDE

installeren Groovy

Stap 8) Kies Startmenumap en klik op VOLGENDE

installeren Groovy

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

installeren Groovy

Stap 10) Klik volgende

installeren Groovy

Stap 11) In het startmenu zoeken naar Groovy troosten

installeren Groovy

Groovy Hallo wereld voorbeeld

Stel je voor dat we een eenvoudige tekenreeks 'Hallo wereld' willen afdrukken Java. De code om de tekenreeks te bereiken Groovy hallo wereld zou zijn

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

De bovenstaande code is in beide geldig Java en Groovy as Groovy is een superset van Java. Maar het voordeel met Groovy is dat we het maken van klassen, het maken van openbare methoden, enz. kunnen afschaffen en dezelfde uitvoer kunnen bereiken met een enkele regelcode 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 hiervan Groovy tutorial, het type variabele (geheel getal) wordt 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 (verwijder de commentaarregel #5), krijgt u de volgende foutmelding

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

In tegenstelling tot, Groovy ondersteunt 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.

Overweeg het volgende groovy voorbeeld:

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

Output:

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

In Groovy, kunt u tekenreeksen 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 Groovy. Maar u kunt het variabeletype niet dynamisch wijzigen zoals u het expliciet hebt gedeclareerd.

Beschouw de volgende code:

int x = 104
println x
x = "Guru99"

Het geeft de volgende foutmelding

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

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

Groovy heeft de volgende vijf typen operatoren:

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

Groovy-Lussen

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.

Beschouw de volgende 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 voor 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 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 hebt. Om de code leesbaarder te maken, wordt de switch-instructie gebruikt.
Geneste Switch-verklaring In Groovy Het is ook mogelijk om geneste switch-instructies te gebruiken.

Groovy Lijst

Met de lijststructuur kunt u een verzameling gegevensitems opslaan. In een Groovy programmeertaal, de lijst bevat een reeks objectverwijzingen. Het toont ook een positie in de reeks. Een letterlijke lijst wordt gepresenteerd als een reeks objecten gescheiden door komma's en ingesloten in vierkante haken.

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- [ ]

Hieronder staan ​​de lijstmethoden die beschikbaar zijn in Groovy:

Methoden Technische Beschrijving
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

Stel je de volgende situatie voor 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

Groovy Maps

Een kaart Groovy is een verzameling sleutelwaardeparen

Voorbeelden Groovy kaarten:

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

Hier vindt u een lijst met kaartmethoden die beschikbaar zijn in Groovy.

Methoden Technische Beschrijving
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 Vs. Java

Groovy Java
In Groovy, de standaardtoegangsspecificatie is openbaar. Het betekent dat een methode zonder enige gespecificeerde toegangsmodificator openbaar is en toegankelijk is buiten de klassen- en pakketgrenzen. In Java, de standaard toegangsmodifier is 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, moet u de getters- en setters-methode voor velden definiëren
Groovy staat variabelevervanging toe met behulp van dubbele aanhalingstekens bij strings. Java ondersteunt geen vervanging van variabelen.
Het typen van informatie is optioneel. Het typen van informatie is verplicht Java.
Groovy het is niet vereist om te eindigen met een puntkomma. In Java, eindigt elke verklaring 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 gebruik maken Groovy alleen voor scripten. Het kan worden gebruikt voor scripting. U kunt echter nog veel meer andere taken uitvoeren.
Groovy heeft alles te maken met sluitingen. 'Het is gewoon functionele programmeertaal. ' Groovy neemt over van 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 te gebruiken Groovy.
Je kunt gebruiken Groovy alleen als je Grails wilt gebruiken. Grails is een krachtig raamwerk voor webontwikkeling.

Maar Groovy biedt meer dan dat.

Nadelen van gebruik Groovy

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

Groovy Tools

We bespreken hierbij 3 belangrijke tools 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 je bij het uitvoeren Groovy interactief coderen
  • Maakt het invoeren van instructies of hele scripts mogelijk

Groovy Tools

Groovy console

  • Swing-interface die als een minimale Groovy ontwikkelingsredacteur.
  • Maakt interactie mogelijk Groovy code
  • Helpt u bij het laden en rennen Groovy scriptbestanden

Groovy Tools

Groovy

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

Het kan worden gebruikt om eenvoudig te testen Groovy uitdrukkingen.

Groovy Tools

Samenvatting

  • Groovy is een objectgeoriënteerde programmeertaal die wordt gebruikt 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 van reguliere expressies zijn belangrijke kenmerken van Groovy
  • Vier typen operatoren worden ondersteund door Groovy zijn 1. Relationeel 2. Logisch 3. Bitgewijs 4. Toewijzing
  • Groovy besluitvorming uitgevoerd met behulp van if, if/els, Nested if, switch, Netsted switch-instructies
  • Met de lijststructuur kunt u een verzameling gegevensitems opslaan
  • Een kaart Groovy is een verzameling sleutelwaardeparen
  • In Groovy, Getters en setters worden automatisch 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 Groovy kan langzamer zijn, waardoor de ontwikkeltijd toeneemt
  • Drie Groovy Hulpmiddelen zijn: Groovysh, dat code uitvoert, Groovy Console, dat een GUI is voor interactieve code-uitvoering, en Groovy, dat scripts uitvoert.