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.
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
Stap 4) Launch. Klik in het welkomstscherm op VOLGENDE
Stap 5) Ga akkoord met de licentievoorwaarden
Stap 6) Selecteer componenten die u wilt installeren en klik op VOLGENDE
Stap 7) Selecteer Installatiemap en klik op VOLGENDE
Stap 8) Kies Startmenumap en klik op VOLGENDE
Stap 9) Zodra de installatie is voltooid, laat u de paden op de standaardinstellingen staan en klikt u op VOLGENDE
Stap 10) Klik volgende
Stap 11) In het startmenu zoeken naar Groovy troosten
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 console
- Swing-interface die als een minimale Groovy ontwikkelingsredacteur.
- Maakt interactie mogelijk Groovy code
- Helpt u bij het laden en rennen Groovy scriptbestanden
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.
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.