Groovy Scripttutorial for begyndere
Hvad er en Groovy Manuskript?
Apache Groovy er en objektorienteret og Java syntaks kompatibelt programmeringssprog bygget til Java platform. Dette dynamiske sprog har mange funktioner, der ligner Python, Ruby, Smalltalk og Pero. Groovy kildekoden bliver kompileret til Java Bytekode, så den kan køre på enhver platform, hvor JRE er installeret. Groovy udfører også en masse opgaver bag scenen, der gør det mere smidigt og dynamisk.
Groovy sprog kan bruges som scriptsprog til Java platform. Det er næsten som en super version af Java som tilbyder Java's virksomhedskapacitet. Det tilbyder også mange produktivitetsfunktioner som DSL-understøttelse, lukninger og dynamisk indtastning. I modsætning til nogle andre sprog er det designet som en ledsager, ikke en erstatning for Java.
Hvorfor Groovy?
Her er vigtige grunde til, hvorfor du bør bruge og lære Groovy-
- Groovy er et smidigt og dynamisk sprog
- Problemfri integration med alle eksisterende Java genstande og biblioteker
- Føles nemt og naturligt at Java udviklere
- Mere kortfattet og meningsfuld kode sammenlignet med Java
- Du kan bruge den lige så meget eller så lidt, som du har lyst til Java apps
Groovy Historie
- 2003: Udviklet af Bob McWhirter & James Strachan
- 2004: Indgået i JSR 241, men den blev forladt
- 2005: Bragt tilbage af Jeremy Rayner & Guillaume Laforge
- 2007: Groovy udgave 1.0
- 2012: Groovy udgave 2
- 2014: Groovy version 2.3 (officiel support givet til JDK 8)
- 2015: Groovy blev et projekt hos Apache Software Foundation
Funktioner af Groovy
- Liste, kort, rækkevidde, bogstaver i regulære udtryk
- Multimetode og metaprogrammering
- Groovy klasser og scripts gemmes normalt i .groovy-filer
- Scripts indeholder Groovy erklæringer uden nogen klasseerklæring.
- Scripts kan også indeholde metodedefinitioner uden for klassedefinitioner.
- Det kan kompileres og fuldt integreres med traditionelle Java ansøgning.
- Understøttelse af sprogniveau til kort, lister, regulære udtryk
- Understøtter lukninger, dynamisk indtastning, metaobjektprotokol
- Understøttelse af statisk og dynamisk skrivning og operatøroverbelastning
- Ordret erklæring for lister (arrays), kort, områder og regulære udtryk
Sådan installeres Groovy
Trin 1) Sørg for, at du har Java installeret.
Trin 2) Gå til http://groovy-lang.org/download.html og klik på installer.
Bemærk: Du kan også installere Groovy ved hjælp af zip-filen eller som en Eclipse IDE. I denne Groovy tutorial, vil vi holde os til Windows Installer
Trin 3) Start det downloadede installationsprogram. Vælg sprog, og klik på OK
Trin 4) Lancering. Klik på NÆSTE på velkomstskærmen
Trin 5) Accepter licensbetingelserne
Trin 6) Vælg de komponenter, du vil installere, og klik på NÆSTE
Trin 7) Vælg Installation Directory, og klik på NÆSTE
Trin 8) Vælg Start Menu Mappe, og klik på NÆSTE
Trin 9) Når installationen er færdig, lad stierne standard og klik på NÆSTE
Trin 10) Klik på NÆSTE
Trin 11) I startmenuen søg efter Groovy Konsol
Groovy Hej verdenseksempel
Overvej, at vi vil udskrive en simpel streng "Hello World" i Java. Koden til at opnå strengen Groovy hej verden ville være
public class Demo { public static void main(String[] args) { System.out.println("Hello World"); } }
Ovenstående kode er gyldig i begge Java og Groovy as Groovy er et supersæt af Java. Men fordelen med Groovy er, at vi kan gøre os op med klasseoprettelse, offentlig metodeoprettelse osv. og opnå det samme output med en enkelt linjekode som følger:
println "Hello World."
Der er ikke behov for semikolon
Der er ikke behov for parenteser
System.out.println reduceres til println
Groovy Variabler
In Java, statisk binding er obligatorisk. Det betyder, at typen af en variabel skal deklareres på forhånd.
public class Demo { public static void main(String[] args) { int x = 104; System.out.println(x); //x = "Guru99"; } }
I ovenstående eksempel på dette Groovy tutorial, type variabel (heltal) erklæres på forhånd ved hjælp af nøgleordet "int". Hvis du skulle angive et flydende decimaltal, bruger du nøgleordet flydende.
Hvis du forsøger at tildele en strengværdi til en int (frakommenteringslinje #5), får du følgende fejl
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
I modsætning, Groovy understøtter dynamisk typning. Variabler defineres ved hjælp af nøgleordet "def", og typen af en variabel behøver ikke at blive erklæret på forhånd. Compileren finder ud af variabeltypen under kørsel, og du kan endda variabeltypen.
Overvej følgende groovy eksempel,
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
Output:
class java.lang.Integer class java.lang.String
In Groovy, kan du oprette flerlinjede strenge. Bare sørg for, at du omslutter strengen i tredobbelte anførselstegn.
def x = """Groovy at Guru99""" println x
Output:
Groovy at Guru99
Bemærk: Du kan stadig variable typer som byte, kort, int, lang osv. med Groovy. Men du kan ikke ændre variabeltypen dynamisk, som du eksplicit har erklæret den.
Overvej følgende kode:
int x = 104 println x x = "Guru99"
Det giver følgende fejl
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-Operatorer
En operator er et symbol, der fortæller compileren at udføre visse matematiske eller logiske manipulationer.
Groovy har følgende fem typer operatører –
- Aritmetiske operatorer: Add (+), Subtrahere (-), Multiplikation (*), Division(/)
- Relationelle operatorer: lig med (==), Ikke lig med (!=), Less end (<) Less end eller lig med (<=), Større end (>), Større end eller lig med (>=)
- Logiske operatorer: Og (&&), Eller(||), Ikke(!)
- Bitvise operatorer: And(&), Or(|), (^), Xor eller Exclusive-or operator
- Tildelingsoperatorer: Negationsoperator (~)
Groovy- Sløjfer
In Java, ville du definere en løkke som følger
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
Du kan opnå det samme output i Groovy bruger op til søgeord
0.upto(4) {println "$it"}
Du får samme output som ovenfor. $it er en lukning, der giver værdien af den aktuelle sløjfe.
Overvej følgende kode
2.upto(4) {println "$it"}
Det giver et output
2 3 4
Du kan også bruge nøgleordet "tider" for at få det samme output
5.times{println "$it"}
Overvej, du vil udskrive 0,2,4 med for sløjfe ind 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
Du kan bruge trinmetoden til det samme
0.step(7,2){println "$it"}
Groovy- Beslutningstagning
Erklæringer | Bedrag |
---|---|
hvis Erklæring | Som i Java, hvis-sætningen udføres, hvis betingelsen er sand. |
if/else-erklæring | I if/else-sætningen evalueres først en betingelse i if-sætningen. Hvis betingelsen er sand, udføres sætningerne derefter. Den stopper før den anden tilstand og går ud af løkken. Men hvis betingelsen er falsk, udføres sætningerne i else-sætningsblokken. Så forlader den løkken. |
Indlejret hvis-erklæring | Det bruges, når der er et krav om at have flere if-sætninger. |
Skift erklæring | Den indlejrede if-else-sætning kan blive ulæselig, når du har flere betingelser. For at gøre koden mere læsbar bruges switch statement. |
Indlejret switch-erklæring | In Groovy er det også muligt at bruge indlejrede switch-sætninger. |
Groovy Liste
Listestruktur giver dig mulighed for at gemme en samling af dataelementer. I en Groovy programmeringssprog, indeholder listen en sekvens af objektreferencer. Den viser også en position i sekvensen. En listeliteral præsenteres som en række objekter adskilt af kommaer og omgivet af firkantede parenteser.
Eksempel på Grrovy liste:
En liste over strenge- ['Angular', 'Nodejs,]
En liste over objektreferencer – ['Groovy', 2,4 2.6]
En liste over heltalsværdier – [16, 17, 18, 19]
En tom liste- [ ]
Følgende er listemetoder, der er tilgængelige i Groovy:
Metoder | Produktbeskrivelse |
---|---|
tilføje() | Giver dig mulighed for at tilføje den nye værdi til slutningen af denne liste. |
indeholder() | Returnerer sand, hvis denne liste indeholder en bestemt værdi. |
få() | Returnerer elementet på den bestemte position |
er tom() | Returnerer sand værdi, hvis Listen ikke indeholder nogen elementer |
minus() | Denne kommando giver dig mulighed for at oprette en ny liste, der er sammensat af elementerne fra originalen undtagen dem, der er specificeret i samlingen. |
plus() | Giver dig mulighed for at oprette en ny liste sammensat af elementerne fra originalen sammen med nævnt i samlingen. |
pop () | Fjerner det sidste element fra listen |
fjerne() | Fjerner elementet på den specifikke position |
baglæns() | Opret en ny liste, som vender elementerne fra den oprindelige liste |
størrelse() | Returnerer antallet af elementer i denne liste |
sortere() | Returnerer en sorteret kopi |
Overvej følgende Groovy script eksempel
def y = ["Guru99", "is", "Bedste", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
Output:
[Guru99, is, Bedste, for, Groovy] true Bedste Learning
Groovy Maps
Et kort Groovy er en samling af nøgleværdipar
Eksempler på Groovy kort:
- [Tutorial: 'Java, Tutorial: 'Groovy] – Samling af nøgle-værdi-par, som har Tutorial som nøgle og deres respektive værdier
- [ : ] Repræsenter et tomt kort
Her er en liste over tilgængelige kortmetoder i Groovy.
Metoder | Produktbeskrivelse |
---|---|
indeholder nøgle() | Tjek, at kortet indeholder denne nøgle eller ej? |
få() | Denne kommando slår nøglen op i dette kort og returnerer den tilsvarende værdi. Hvis du ikke finder nogen post på dette kort, vil det returnere null. |
keySet () | Gør det muligt at finde et sæt nøgler på dette kort |
sætte() | Knytter den angivne værdi til den givne nøgle i dette kort. Hvis kortet tidligere indeholdt en tilknytning til denne nøgle. Så vil den gamle værdi blive erstattet af den angivne værdi. |
størrelse() | Returnerer antallet af nøgleværdi-tilknytninger. |
værdier () | Denne kommando returnerer en samlingsvisning af værdierne. |
Groovy Eksempel:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
Produktion
Jen
Groovy- Lukninger
En groovy lukning er et stykke kode pakket ind som et objekt. Det fungerer som en metode eller en funktion.
Eksempel på simpel lukning
def myClosure = { println "My First Closure" } myClosure()
Output:
My First Closure
En lukning kan acceptere parametre. Listen over identificerer er komma adskilt med
en pil (->), der markerer slutningen af parameterlisten.
def myClosure = { a,b,c-> y = a+b+c println y } myClosure(1,2,3)
Output:
6
En lukning kan returnere en værdi.
def myClosure = { a,b,c-> return (a+b+c) } println(myClosure(1,2,3))
Output:
6
Der er mange indbyggede lukninger som "It", "identitet" osv. Lukninger kan tage andre lukninger som parametre.
Groovy Vs. Java
Groovy | Java |
---|---|
In Groovy, standardadgangsspecifikationen er offentlig. Det betyder, at en metode uden nogen specificeret adgangsmodifikator er offentlig og tilgængelig uden for klasse- og pakkegrænser. | In Java, er standardadgangsmodifikatoren en pakke, dvs. hvis du ikke angiver adgangsmodifikator for felter, metoder eller klasse, bliver den pakkeprivat, |
Getters og sættere genereres automatisk for klassemedlemmer. | Java, skal du definere getters og seters metode for felter |
Groovy tillader variabel substitution ved hjælp af dobbelte anførselstegn med strenge. | Java understøtter ikke variabel substitution. |
Indtastning af oplysninger er valgfrit. | Indtastning af oplysninger er obligatorisk i Java. |
Groovy det er ikke nødvendigt at slutte med semikolon. | In Java, hver sætning ender med et semikolon. |
Groovy er automatisk en indpakningsklasse kaldet Script for hvert program | In Java, skal du bruge hovedmetoden for at gøre en klasse eksekverbar. |
Myter om Groovy
Myte | Reality |
---|---|
Vi kan bruge Groovy kun til scripting. | Det kan bruges til scripting. Du kan dog udføre mange andre opgaver udover det. |
Groovy handler om lukninger. "Det er bare funktionelt programmeringssprog". | Groovy adopterer fra funktionelle programmeringssprog som Lisp eller Closure. |
Groovy er et ideelt valg, hvis du vil lave TDD | Dette udsagn er sandt. Det er dog bestemt ikke den eneste grund til at bruge Groovy. |
Du kan bruge Groovy kun hvis du vil bruge Grails. | Grails er en kraftfuld webudviklingsramme.
Men Groovy tilbyder mere end det. |
Ulemper ved at bruge Groovy
- JVM og Groovy script-starttiden er langsom, hvilket begrænser scripting på OS-niveau
- Groovy er ikke helt accepteret i andre fællesskaber.
- Det er ikke praktisk at bruge Groovy uden at bruge IDE
- Groovy kan være langsommere, hvilket øgede udviklingstiden
- Groovy kan have brug for meget hukommelse
- Kendskab til Java er bydende nødvendigt.
Groovy Værktøjer
Vi vil diskutere 3 vigtige værktøjer i dette Groovy script tutorial
1. groovysh: Udfører kode interaktivt.
2. groovyConsole: GUI til interaktiv kodeudførelse
3. groovy: Udfører groovy scripts. Du kan bruge det ligesom Perl, PythonOsv
Groovysh
- kommandolinje shell
- Hjælper dig med at udføre Groovy kode interaktivt
- Tillader indtastning af udsagn eller hele scripts
Groovy konsol
- Swing interface, der fungerer som en minimal Groovy udviklingsredaktør.
- Giver dig mulighed for at interagere Groovy kode
- Hjælper dig med at indlæse og køre Groovy script filer
Groovy
Det er processoren, der udfører Groovy programmer og scripts. U
Det kan bruges til at teste enkelt Groovy udtryk.
Resumé
- Groovy er et objektorienteret programmeringssprog, der bruges til Java perron
- Groovy scripting tilbyder problemfri integration med alle eksisterende Java genstande og biblioteker
- Bob McWhirter & James Strachan udviklede groovy i 2003
- Liste, kort, rækkevidde, bogstaver i regulære udtryk er vigtige træk ved Groovy
- Fire typer operatører understøtter ved Groovy er 1. Relationelle 2.Logiske 3. Bitvise 4. Tildeling
- Groovy udført beslutningstagning ved hjælp af if, if/else, Nested if, switch, Netsted switch statements
- Listestruktur giver dig mulighed for at gemme en samling af dataelementer
- Et kort Groovy er en samling af nøgleværdipar
- In Groovy, Getters og settere genereres automatisk for klassemedlemmer
- In Java, kan du bruge metoden give getters og setters til felter
- Den største myte om Groovy er, at den kun kan bruges til scripting, som ikke er korrekt
- Nogen tid Groovy kan være langsommere, hvilket øgede udviklingstiden
- Tre Groovy Værktøjer er: groovysh som eksekverer kode, groovy Console som er GUI til interaktiv kodeudførelse og groovy som eksekverer scripts