Groovy Vodič za skripte za početnike
Što je a Groovy Skripta?
apaš Groovy je objektno orijentiran i Java programski jezik kompatibilan sa sintaksom izgrađen za Java platforma. Ovaj dinamički jezik ima mnogo značajki koje su slične Python, Ruby, Smalltalk i Pero. Groovy izvorni kod se kompajlira u Java Bytecode tako da se može izvoditi na bilo kojoj platformi koja ima instaliran JRE. Groovy također obavlja puno zadataka iza scene što ga čini agilnijim i dinamičnijim.
Groovy jezik se može koristiti kao skriptni jezik za Java platforma. Gotovo je kao super verzija Java koja nudi Javasposobnosti poduzeća. Također nudi mnoge produktivne značajke poput DSL podrške, zatvaranja i dinamičkog tipkanja. Za razliku od nekih drugih jezika, osmišljen je kao pratilac, a ne kao zamjena Java.
Zašto Groovy?
Ovdje su glavni razlozi zašto biste trebali koristiti i učiti Groovy-
- Groovy je agilan i dinamičan jezik
- Besprijekorna integracija sa svim postojećim Java objekti i knjižnice
- Djeluje lako i prirodno Java programeri
- Koncizniji i smisleniji kôd u usporedbi s Java
- Možete ga koristiti koliko god želite Java aplikacije
Groovy Povijest
- 2003.: Razvio Bob McWhirter & James Strachan
- 2004: Uveden u JSR 241, ali je napušten
- 2005.: Vratili Jeremy Rayner i Guillaume Laforge
- 2007: Groovy Verzija 1.0
- 2012: Groovy Verzija 2
- 2014: Groovy verzija 2.3 (službena podrška dana za JDK 8)
- 2015: Groovy postao projekt u Apache Software Foundation
Značajke Groovy
- Popis, karta, raspon, literali regularnih izraza
- Multimetoda i metaprogramiranje
- Groovy klase i skripte obično se pohranjuju u .groovy datoteke
- Skripte sadrže Groovy izjave bez ikakve deklaracije klase.
- Skripte također mogu sadržavati definicije metoda izvan definicija klasa.
- Može se sastaviti i potpuno integrirati s tradicionalnim Java prijava.
- Podrška na razini jezika za karte, popise, regularne izraze
- Podržava zatvaranja, dinamičko tipkanje, protokol metaobjekta
- Podrška za statičko i dinamičko tipkanje i preopterećenje operatora
- Doslovna deklaracija za popise (nizove), karte, raspone i regularne izraze
Kako instalirati Groovy
Korak 1) Osigurajte da imate Java instaliran.
Korak 2) Idi na http://groovy-lang.org/download.html i kliknite instalacijski program.
Napomena: možete također instalirati Groovy korištenjem Zip datoteke ili kao Eclipse IDE. U ovom Groovy tutorial, mi ćemo se držati Windows Installer
Korak 3) Pokrenite preuzeti instalacijski program. Odaberite jezik i kliknite OK
Korak 4) Pokreni. Na zaslonu dobrodošlice kliknite DALJE
Korak 5) Slažem se s licencnim uvjetima
Korak 6) Odaberite komponente koje želite instalirati i kliknite DALJE
Korak 7) Odaberite instalacijski direktorij i kliknite DALJE
Korak 8) Odaberite mapu izbornika Start i kliknite DALJE
Korak 9) Nakon što je instalacija gotova, ostavite zadane staze i kliknite DALJE
Korak 10) Pritisnite DALJE
Korak 11) U izborniku Start potražite Groovy Utješiti
Groovy Hello World Primjer
Zamislimo da želimo ispisati jednostavan niz "Hello World". Java. Kod za postizanje niza Groovy zdravo svijete bi bilo
public class Demo { public static void main(String[] args) { System.out.println("Hello World"); } }
Gornji kod vrijedi u oba Java i Groovy as Groovy je nadskup od Java. Ali prednost sa Groovy je da možemo izbjeći stvaranje klasa, stvaranje javnih metoda, itd. i postići isti izlaz s jednim linijskim kodom kako slijedi:
println "Hello World."
Nema potrebe za točkom i zarezom
Nema potrebe za zagradama
System.out.println reducira se na println
Groovy Varijable
In Java, statičko uvezivanje je obavezno. Što znači da tip varijable mora biti deklariran unaprijed.
public class Demo { public static void main(String[] args) { int x = 104; System.out.println(x); //x = "Guru99"; } }
U gornjem primjeru ovoga Groovy tutorial, tip varijable (cijeli broj) deklariran je unaprijed pomoću ključne riječi “int”. Ako želite deklarirati broj s pomičnim zarezom, koristite ključnu riječ float.
Ako pokušate dodijeliti vrijednost String int-u (odkomentirajte red #5), dobit ćete sljedeću pogrešku
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
U suprotnosti, Groovy podržava dinamičko tipkanje. Varijable se definiraju pomoću ključne riječi "def", a tip varijable ne mora biti deklariran unaprijed. Kompajler utvrđuje vrstu varijable tijekom izvođenja, a možete čak i vrstu varijable.
Razmotrite sljedeći groovy primjer,
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
Izlaz:
class java.lang.Integer class java.lang.String
In Groovy, možete stvoriti višeredne nizove. Samo provjerite jeste li String stavili u trostruke navodnike.
def x = """Groovy at Guru99""" println x
Izlaz:
Groovy at Guru99
bilješke: I dalje možete mijenjati tipove kao što su byte, short, int, long itd Groovy. Ali ne možete dinamički promijeniti tip varijable jer ste ga eksplicitno deklarirali.
Razmotrite sljedeći kôd:
int x = 104 println x x = "Guru99"
Daje sljedeću grešku
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-Operaulagatelji
Operator je simbol koji prevoditelju govori da izvrši određene matematičke ili logičke manipulacije.
Groovy ima sljedećih pet vrsta operatora –
- Aritmetički operatori: zbrajanje (+), oduzimanje (-), množenje (*), dijeljenje (/)
- Relacijski operatori: jednako (==), Nije jednako (!=), Less nego (<) Less od ili jednako (<=), veće od (>), veće od ili jednako (>=)
- Logički operatori: And (&&), Or(||), Not(!)
- Bitovi operatori: And(&), Or(|), (^), Xor ili Ekskluzivni-or operator
- Operatori dodjele: operator negacije (~)
Groovy-Petlje
In Java, definirali biste petlju na sljedeći način
public class Demo { public static void main(String[] args) { for (int x = 0; x <= 5; x++) { System.out.println(x); } } }
Izlaz:
0 1 2 3 4
Isti rezultat možete postići u Groovy koristeći do ključnih riječi
0.upto(4) {println "$it"}
Dobivate isti rezultat kao gore. $to je zatvaranje koje daje vrijednost trenutne petlje.
Razmotrite sljedeći kôd
2.upto(4) {println "$it"}
Daje izlaz
2 3 4
Također možete koristiti ključnu riječ "times" da dobijete isti rezultat
5.times{println "$it"}
Uzmite u obzir, želite ispisati 0,2,4 sa za petlju u Java
public class Demo { public static void main(String[] args) { for (int x = 0; x <= 5; x=x+2) { System.out.println(x); } } }
Izlaz:
0 2 4
Za isto možete koristiti metodu koraka
0.step(7,2){println "$it"}
Groovy- Donošenje odluka
Izjave | Prijevara |
---|---|
if Izjava | Kao u Java, naredba if se izvršava ako je uvjet istinit. |
if/else izjava | U if/else izjavi prvo se procjenjuje uvjet u if izjavi. Ako je uvjet istinit, izvršava naredbe nakon toga. Zaustavlja se prije else uvjeta i izlazi iz petlje. Međutim, ako je uvjet netočan, tada se izvršavaju naredbe u bloku naredbi else. Zatim izlazi iz petlje. |
Ugniježđena If naredba | Koristi se kada postoji zahtjev za više naredbi if. |
Izjava o prebacivanju | Ugniježđena izjava if-else mogla bi postati nečitljiva ako imate više uvjeta. Kako bi kod bio čitljiviji, koristi se naredba switch. |
Ugniježđeni Switch Statement | In Groovy također je moguće koristiti ugniježđene switch izjave. |
Groovy Popis
Struktura popisa omogućuje pohranjivanje zbirke podataka. u a Groovy programskom jeziku, popis sadrži niz referenci objekata. Također pokazuje položaj u nizu. Literal popisa predstavljen je kao niz objekata odvojenih zarezima i u uglastim zagradama.
Primjer Grrovy liste:
Popis nizova - ['Angular', 'Nodejs,]
Popis referenci objekata – ['Groovy', 2,4 2.6]
Popis cjelobrojnih vrijednosti – [16, 17, 18, 19]
Prazan popis- [ ]
Slijede metode popisa dostupne u Groovy:
Metode | Description |
---|---|
dodati() | Omogućuje vam dodavanje nove vrijednosti na kraj ovog popisa. |
sadrži () | Vraća true ako ovaj popis sadrži određenu vrijednost. |
dobiti() | Vraća element na određeno mjesto |
prazno je() | Vraća pravu vrijednost ako popis ne sadrži elemente |
minus() | Ova vam naredba omogućuje stvaranje novog popisa sastavljenog od elemenata izvornika isključujući one koji su navedeni u zbirci. |
plus() | Omogućuje vam stvaranje novog popisa sastavljenog od elemenata izvornika zajedno s elementima spomenutim u zbirci. |
pop () | Uklanja posljednju stavku s popisa |
ukloniti() | Uklanja element na određenoj poziciji |
obrnuti () | Napravite novi popis koji obrće elemente izvornog popisa |
veličina() | Vraća broj elemenata na ovom popisu |
vrsta() | Vraća sortiranu kopiju |
Uzmite u obzir sljedeće Groovy primjer skripte
def y = ["Guru99", "is", "Best", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
Izlaz:
[Guru99, is, Best, for, Groovy] true Best Learning
Groovy Karte
Karta Groovy je zbirka parova ključnih vrijednosti
Primjeri Groovy Karte:
- [Udžbenik: 'Java, Vodič: 'Groovy] – Zbirka parova ključ-vrijednost koja ima Vodič kao ključ i njihove odgovarajuće vrijednosti
- [ : ] Predstavlja praznu kartu
Ovdje je popis dostupnih metoda karte Groovy.
Metode | Description |
---|---|
sadržiKljuč() | Provjerite sadrži li karta ovaj ključ ili ne? |
dobiti() | Ova naredba traži ključ u ovoj mapi i vraća odgovarajuću vrijednost. Ako ne pronađete nijedan unos na ovoj karti, vratit će nulu. |
KeySet() | Omogućuje pronalaženje skupa ključeva u ovoj karti |
staviti() | Pridružuje navedenu vrijednost danom ključu u ovoj mapi. Ako je Karta ranije sadržavala mapiranje za ovaj ključ. Tada će stara vrijednost biti zamijenjena navedenom vrijednošću. |
veličina() | Vraća broj preslikavanja ključa i vrijednosti. |
vrijednosti() | Ova naredba vraća prikaz zbirke vrijednosti. |
Groovy Primjer:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
Izlaz
Jen
Groovy- Zatvaranja
Groovy zatvaranje je dio koda omotan kao objekt. Djeluje kao metoda ili funkcija.
Primjer jednostavnog zatvaranja
def myClosure = { println "My First Closure" } myClosure()
Izlaz:
My First Closure
Zatvaranje može prihvatiti parametre. Popis identifikacija odvojen je zarezom
strelica (->) koja označava kraj popisa parametara.
def myClosure = { a,b,c-> y = a+b+c println y } myClosure(1,2,3)
Izlaz:
6
Zatvaranje može vratiti vrijednost.
def myClosure = { a,b,c-> return (a+b+c) } println(myClosure(1,2,3))
Izlaz:
6
Postoje mnoga ugrađena zatvaranja kao što su "To", "identitet", itd. Zatvaranja mogu uzeti druge zatvarače kao parametre.
Groovy Vs. Java
Groovy | Java |
---|---|
In Groovy, zadani specifikator pristupa je javan. To znači da je metoda bez specificiranog modifikatora pristupa javna i dostupna izvan granica klase i paketa. | In Java, zadani modifikator pristupa je paket, tj. ako ne navedete modifikator pristupa za polja, metode ili klasu, on postaje privatan za paket, |
Getteri i postavljači se automatski generiraju za članove klase. | Java, trebate definirati metode dobivanja i postavljanja za polja |
Groovy dopušta zamjenu varijabli korištenjem dvostrukih navodnika s nizovima. | Java ne podržava zamjenu varijable. |
Upisivanje podataka nije obavezno. | Upisivanje podataka je obavezno Java. |
Groovy nije obavezno da završava točkom i zarezom. | In Java, svaki iskaz završava točkom i zarezom. |
Groovy je automatski klasa za omatanje pod nazivom Skripta za svaki program | In Java, potrebna vam je glavna metoda da biste klasu napravili izvršnom. |
Mitovi o Groovy
Mit | Stvarnost |
---|---|
Možemo koristiti Groovy samo za skriptiranje. | Može se koristiti za skriptiranje. Međutim, možete obavljati mnoge druge zadatke osim njega. |
Groovy je sve o zatvaranjima. “Samo je funkcionalni programski jezik". | Groovy usvaja funkcionalne programske jezike kao što su Lisp ili Closure. |
Groovy je idealan izbor ako želite raditi TDD | Ova izjava je istinita. Međutim, to sigurno nije jedini razlog za korištenje Groovy. |
Možete koristiti Groovy samo ako želite koristiti Grails. | Grails je moćan okvir za web razvoj.
Ali Groovy nudi više od toga. |
Slabosti korištenja Groovy
- JVM i Groovy vrijeme početka skripte je sporo što ograničava skriptiranje na razini OS-a
- Groovy nije u potpunosti prihvaćen u drugim zajednicama.
- Nije zgodno za korištenje Groovy bez korištenja IDE-a
- Groovy može biti sporiji što je produžilo vrijeme razvoja
- Groovy možda će trebati puno memorije
- Znanje o Java je imperativ.
Groovy Alati
U ovome ćemo raspravljati o 3 važna alata Groovy skripta poduka
1. groovysh: interaktivno izvršava kôd.
2. groovyConsole: GUI za interaktivno izvršavanje koda
3. groovy: Izvršava groovy skripte. Možete ga koristiti kao Perl, Python, Itd
Groovysh
- ljuska naredbenog retka
- Pomaže vam u izvršenju Groovy kodirati interaktivno
- Omogućuje unos izjava ili cijelih skripti
Groovy konzola
- Swing sučelje koje djeluje kao minimalno Groovy razvojni urednik.
- Omogućuje vam interakciju Groovy kod
- Pomaže vam da učitate i pokrenete Groovy datoteke skripti
Groovy
Procesor je taj koji izvršava Groovy programa i skripti. U
Može se koristiti za jednostavno testiranje Groovy izrazi.
rezime
- Groovy je objektno orijentirani programski jezik koji se koristi za Java platforma
- Groovy skriptiranje nudi besprijekornu integraciju sa svim postojećim Java objekti i knjižnice
- Bob McWhirter & James Strachan razvili su groovy 2003
- Popis, karta, raspon, literali regularnih izraza važne su značajke Groovy
- Četiri vrste operatora podržavaju Groovy su 1. Relacijski 2. Logički 3. Bitni 4. Dodjela
- Groovy izvršio donošenje odluka koristeći if, if/else, Nested if, switch, Netsted switch izjave
- Struktura popisa omogućuje pohranu zbirke podatkovnih stavki
- Karta Groovy je zbirka parova ključnih vrijednosti
- In Groovy, Getteri i postavljači se automatski generiraju za članove klase
- In Java, možete koristiti metodu pružanja dobivača i postavljača za polja
- Najveći mit o Groovy je da se može koristiti samo za skriptiranje što nije točno
- Neko vrijeme Groovy može biti sporiji što je produžilo vrijeme razvoja
- Tri Groovy Alati su: groovysh koji izvršava kod, groovy Console koji je GUI za interaktivno izvršavanje koda i groovy koji izvršava skripte