Groovy Handledning för skript för nybörjare
Vad är en Groovy Manus?
Apache Groovy är en objektorienterad och Java syntaxkompatibelt programmeringsspråk byggt för Java plattform. Detta dynamiska språk har många funktioner som liknar Python, Ruby, Smalltalk och Pero. Groovy källkoden kompileras till Java Bytecode så att den kan köras på vilken plattform som helst som har JRE installerat. Groovy utför också en hel del uppgifter bakom scenen som gör den mer smidig och dynamisk.
Groovy språk kan användas som ett skriptspråk för Java plattform. Det är nästan som en superversion av Java som erbjuder Javaföretagskapacitet. Den erbjuder också många produktivitetsfunktioner som DSL-stöd, stängningar och dynamisk typning. Till skillnad från vissa andra språk är den designad som en följeslagare, inte en ersättning för Java.
Varför Groovy?
Här är viktiga skäl till varför du bör använda och lära dig Groovy-
- Groovy är ett smidigt och dynamiskt språk
- Sömlös integration med alla befintliga Java föremål och bibliotek
- Känns lätt och naturligt att Java utvecklare
- Mer kortfattad och meningsfull kod jämfört med Java
- Du kan använda den hur mycket eller lite du vill med Java appar
Groovy historik
- 2003: Utvecklad av Bob McWhirter & James Strachan
- 2004: Driftsattes i JSR 241 men övergavs
- 2005: Kom tillbaka av Jeremy Rayner & Guillaume Laforge
- 2007: Groovy version 1.0
- 2012: Groovy version 2
- 2014: Groovy version 2.3 (officiellt stöd ges för JDK 8)
- 2015: Groovy blev ett projekt på Apache Software Foundation
Dragen av Groovy
- Lista, karta, räckvidd, regelbundna uttryck
- Multimetod och metaprogrammering
- Groovy klasser och skript lagras vanligtvis i .groovy-filer
- Skript innehåller Groovy uttalanden utan klassdeklaration.
- Skript kan också innehålla metoddefinitioner utanför klassdefinitioner.
- Den kan kompileras och helt integreras med traditionella Java ansökan.
- Stöd på språknivå för kartor, listor, reguljära uttryck
- Stöder stängningar, dynamisk typning, metaobjektprotokoll
- Stöd för statisk och dynamisk skrivning och operatörsöverbelastning
- Bokstavlig deklaration för listor (matriser), kartor, intervall och reguljära uttryck
Hur man installerar Groovy
Steg 1) Se till att du har Java installerad.
Steg 2) Gå till http://groovy-lang.org/download.html och klicka på Installer.
Obs: Du kan också installera Groovy med hjälp av zip-filen eller som en Eclipse IDE. I detta Groovy handledning kommer vi att hålla oss till Windows Installer
Steg 3) Starta det nedladdade installationsprogrammet. Välj språk och klicka på OK
Steg 4) Lansera. Klicka på NÄSTA på välkomstskärmen
Steg 5) Håller med om licensvillkoren
Steg 6) Välj komponenter du vill installera och klicka på NÄSTA
Steg 7) Välj Installationskatalog och klicka på NÄSTA
Steg 8) Välj Startmenymapp och klicka på NÄSTA
Steg 9) När installationen är klar, låt sökvägarna standard och klicka på NÄSTA
Steg 10) Klicka på NÄSTA
Steg 11) Sök efter i startmenyn Groovy Konsol
Groovy Hej världsexempel
Tänk att vi vill skriva ut en enkel sträng "Hello World" i Java. Koden för att uppnå strängen Groovy hej världen skulle vara
public class Demo { public static void main(String[] args) { System.out.println("Hello World"); } }
Ovanstående kod är giltig i båda Java och Groovy as Groovy är en superset av Java. Men fördelen med Groovy är att vi kan göra oss av med klassskapande, skapande av offentliga metoder, etc och uppnå samma utdata med en enkelradskod enligt följande:
println "Hello World."
Det finns inget behov av semikolon
Det finns inget behov av parentes
System.out.println reduceras till println
Groovy variabler
In Java, statisk bindning är obligatorisk. Det betyder att typen av en variabel måste deklareras i förväg.
public class Demo { public static void main(String[] args) { int x = 104; System.out.println(x); //x = "Guru99"; } }
I ovanstående exempel på detta Groovy handledning, typ av variabel (heltal) deklareras i förväg med hjälp av nyckelordet "int". Om du skulle deklarera ett flyttalnummer använder du nyckelordet flytande.
Om du försöker tilldela ett strängvärde till en int (avkommentarrad #5) får du följande fel
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
I kontrast, Groovy stöder dynamisk typning. Variabler definieras med nyckelordet "def", och typen av en variabel behöver inte deklareras i förväg. Kompilatorn räknar ut variabeltypen vid körning och du kan till och med variabeltypen.
Tänk på följande groovy exempel,
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
Produktion:
class java.lang.Integer class java.lang.String
In Groovy, kan du skapa flerradiga strängar. Se bara till att du anger strängen med tre citattecken.
def x = """Groovy at Guru99""" println x
Produktion:
Groovy at Guru99
Anmärkningar: Du kan fortfarande variabla typer som byte, kort, int, lång, etc med Groovy. Men du kan inte ändra variabeltypen dynamiskt eftersom du uttryckligen har deklarerat den.
Tänk på följande kod:
int x = 104 println x x = "Guru99"
Det ger följande fel
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 är en symbol som talar om för kompilatorn att göra vissa matematiska eller logiska manipulationer.
Groovy har följande fem typer av operatörer –
- Aritmetiska operatorer: Addera (+), Subtrahera (-), Multiplikation (*), Division(/)
- Relationsoperatorer: lika med (==), inte lika med (!=), Less än (<) Less än eller lika med (<=), Större än (>), Större än eller lika med (>=)
- Logiska operatorer: Och (&&), Eller(||), Inte(!)
- Bitvisa operatorer: And(&), Or(|), (^), Xor eller Exclusive-or operator
- Tilldelningsoperatorer: Negationsoperator (~)
Groovy- Slingor
In Java, skulle du definiera en loop enligt följande
public class Demo { public static void main(String[] args) { for (int x = 0; x <= 5; x++) { System.out.println(x); } } }
Produktion:
0 1 2 3 4
Du kan uppnå samma utgång i Groovy använder upp till nyckelord
0.upto(4) {println "$it"}
Du får samma utdata som ovan. $it är en stängning som ger värdet av den aktuella slingan.
Tänk på följande kod
2.upto(4) {println "$it"}
Det ger en utgång
2 3 4
Du kan också använda nyckelordet "tider" för att få samma resultat
5.times{println "$it"}
Tänk på att du vill skriva ut 0,2,4 med för loop in Java
public class Demo { public static void main(String[] args) { for (int x = 0; x <= 5; x=x+2) { System.out.println(x); } } }
Produktion:
0 2 4
Du kan använda stegmetoden för detsamma
0.step(7,2){println "$it"}
Groovy- Beslutsfattande
Uttalanden | Bedrägeri |
---|---|
om uttalande | Som i Java, if-satsen körs om villkoret är sant. |
om/annat uttalande | I if/else-satsen utvärderas först ett villkor i if-satsen. Om villkoret är sant körs satserna efter det. Den stannar före det andra tillståndet och lämnar slingan. Om villkoret är falskt körs dock satserna i else-satsblocket. Sedan lämnar den slingan. |
Kapslad If-utlåtande | Det används när det finns ett krav på att ha flera if-satser. |
Byt uttalande | Den kapslade if-else-satsen kan bli oläslig när du har flera villkor. För att göra koden mer läsbar används switch statement. |
Uttalande av kapslad switch | In Groovy är också möjligt att använda kapslade switch-satser. |
Groovy Lista
Liststruktur låter dig lagra en samling dataobjekt. I en Groovy programmeringsspråk, innehåller listan en sekvens av objektreferenser. Den visar också en position i sekvensen. En lista bokstavlig presenteras som en serie objekt separerade med kommatecken och omgivna av hakparenteser.
Exempel på Grrovy-lista:
En lista över strängar- ['Angular', 'Nodejs,]
En lista med objektreferenser – ['Groovy', 2,4 2.6]
En lista med heltalsvärden – [16, 17, 18, 19]
En tom lista- [ ]
Följande listmetoder är tillgängliga i Groovy:
Metoder | Description |
---|---|
Lägg till() | Låter dig lägga till det nya värdet i slutet av denna lista. |
innehåller() | Returnerar sant om denna lista innehåller ett visst värde. |
skaffa sig() | Returnerar elementet vid den bestämda positionen |
är tom() | Returnerar sant värde om Lista inte innehåller några element |
minus() | Detta kommando låter dig skapa en ny lista som består av elementen i originalet, exklusive de som är specificerade i samlingen. |
plus() | Låter dig skapa en ny lista som består av elementen i originalet tillsammans med de som nämns i samlingen. |
pop() | Tar bort det sista objektet från listan |
avlägsna() | Tar bort elementet vid den specifika positionen |
omvänd() | Skapa en ny lista som vänder på elementen i den ursprungliga listan |
storlek() | Returnerar antalet element i denna lista |
sortera() | Returnerar en sorterad kopia |
Tänk på följande Groovy manusexempel
def y = ["Guru99", "is", "Best", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
Produktion:
[Guru99, is, Best, for, Groovy] true Best Learning
Groovy kartor
En karta Groovy är en samling nyckelvärdepar
Exempel på Groovy kartor:
- [Handledning: 'Java, Handledning: 'Groovy] – Samling av nyckel-värde-par som har Tutorial som nyckel och deras respektive värden
- [ : ] Representerar en tom karta
Här är en lista över kartmetoder tillgängliga i Groovy.
Metoder | Description |
---|---|
containsKey() | Kontrollera att kartan innehåller denna nyckel eller inte? |
skaffa sig() | Detta kommando slår upp nyckeln i denna karta och returnerar motsvarande värde. Om du inte hittar någon post i denna karta kommer den att returnera null. |
keySet () | Gör det möjligt att hitta en uppsättning nycklar i denna karta |
sätta() | Associerar det angivna värdet med den givna nyckeln i denna karta. Om kartan tidigare innehöll en mappning för denna nyckel. Då kommer det gamla värdet att ersättas med det angivna värdet. |
storlek() | Returnerar antalet nyckel-värde-mappningar. |
värden () | Detta kommando returnerar en samlingsvy av värdena. |
Groovy Exempelvis:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
Produktion
Jen
Groovy- Stängningar
En groovy stängning är en kod som är inslagen som ett objekt. Det fungerar som en metod eller en funktion.
Exempel på enkel stängning
def myClosure = { println "My First Closure" } myClosure()
Produktion:
My First Closure
En stängning kan acceptera parametrar. Listan över identifierar är kommaseparerad med
en pil (->) som markerar slutet av parameterlistan.
def myClosure = { a,b,c-> y = a+b+c println y } myClosure(1,2,3)
Produktion:
6
En stängning kan returnera ett värde.
def myClosure = { a,b,c-> return (a+b+c) } println(myClosure(1,2,3))
Produktion:
6
Det finns många inbyggda stängningar som "It", "identitet" etc. Stängningar kan ta andra stängningar som parametrar.
Groovy Vs. Java
Groovy | Java |
---|---|
In Groovy, standardåtkomstspecifikationen är offentlig. Det betyder att en metod utan någon specificerad åtkomstmodifierare är offentlig och tillgänglig utanför klass- och paketgränserna. | In Java, är standardåtkomstmodifieraren ett paket, dvs om du inte anger åtkomstmodifierare för fält, metoder eller klass blir det paketprivat, |
Getters och seters genereras automatiskt för klassmedlemmar. | Java, måste du definiera getters och setters metod för fält |
Groovy tillåter variabelsubstitution med dubbla citattecken med strängar. | Java stöder inte variabelsubstitution. |
Att skriva information är valfritt. | Att skriva information är obligatoriskt i Java. |
Groovy det är inte nödvändigt att sluta med semikolon. | In Java, varje påstående slutar med semikolon. |
Groovy är automatiskt en inpackningsklass som heter Script för varje program | In Java, behöver du huvudmetoden för att göra en klass körbar. |
Myter om Groovy
Myt | Verkligheten |
---|---|
Vi kan använda Groovy bara för manus. | Det kan användas för skript. Men du kan utföra många andra uppgifter förutom det. |
Groovy handlar om nedläggningar. "Det är bara funktionellt programmeringsspråk. " | Groovy använder sig av funktionella programmeringsspråk som Lisp eller Closure. |
Groovy är ett idealiskt val om du vill göra TDD | Detta påstående är sant. Men det är verkligen inte den enda anledningen att använda Groovy. |
Du kan använda Groovy endast om du vill använda Grails. | Grails är ett kraftfullt ramverk för webbutveckling.
Men Groovy erbjuder mer än så. |
Nackdelar med att använda Groovy
- JVM och Groovy skriptets starttid är långsam vilket begränsar skript på OS-nivå
- Groovy är inte helt accepterat i andra samhällen.
- Det är inte bekvämt att använda Groovy utan att använda IDE
- Groovy kan vara långsammare vilket ökade utvecklingstiden
- Groovy kan behöva mycket minne
- Kunskap av Java är absolut nödvändigt.
Groovy verktyg
Vi kommer att diskutera 3 viktiga verktyg i detta Groovy script handledning
1. groovysh: Exekverar kod interaktivt.
2. groovyConsole: GUI för interaktiv kodexekvering
3. groovy: Utför groovy skript. Du kan använda den som Perl, PythonEtc.
Groovysh
- kommandoradsskal
- Hjälper dig att utföra Groovy kod interaktivt
- Tillåter inmatning av uttalanden eller hela skript
Groovy trösta
- Svänggränssnitt som fungerar som ett minimalt Groovy utvecklingsredaktör.
- Låter dig interagera Groovy koda
- Hjälper dig att ladda och springa Groovy skriptfiler
Groovy
Det är processorn som kör Groovy program och skript. U
Det kan användas för att testa enkelt Groovy uttryck.
Sammanfattning
- Groovy är ett objektorienterat programmeringsspråk som används för Java plattform
- Groovy scripting erbjuder sömlös integration med alla befintliga Java föremål och bibliotek
- Bob McWhirter & James Strachan utvecklade groovy 2003
- Lista, karta, räckvidd, reguljära uttrycksliteraler är viktiga egenskaper hos Groovy
- Fyra typer av operatörer stöder av Groovy är 1. Relationell 2.Logisk 3. Bitvis 4. Tilldelning
- Groovy utfört beslutsfattande med hjälp av if, if/else, Nested if, switch, Netsted switch-satser
- Liststruktur låter dig lagra en samling av dataobjekt
- En karta Groovy är en samling nyckelvärdepar
- In Groovy, Getters och seters genereras automatiskt för klassmedlemmar
- In Java, kan du använda metoden tillhandahålla getters och setters för fält
- Den största myten om Groovy är att det bara kan användas för skript som inte är korrekt
- Någon gång Groovy kan vara långsammare vilket ökade utvecklingstiden
- Tre Groovy Verktygen är: groovysh som exekverar kod, groovy Console som är GUI för interaktiv kodexekvering och groovy som exekverar skript