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.

instalirati Groovy

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

instalirati Groovy

Korak 4) Pokreni. Na zaslonu dobrodošlice kliknite DALJE

instalirati Groovy

Korak 5) Slažem se s licencnim uvjetima

instalirati Groovy

Korak 6) Odaberite komponente koje želite instalirati i kliknite DALJE

instalirati Groovy

Korak 7) Odaberite instalacijski direktorij i kliknite DALJE

instalirati Groovy

Korak 8) Odaberite mapu izbornika Start i kliknite DALJE

instalirati Groovy

Korak 9) Nakon što je instalacija gotova, ostavite zadane staze i kliknite DALJE

instalirati Groovy

Korak 10) Pritisnite DALJE

instalirati Groovy

Korak 11) U izborniku Start potražite Groovy Utješiti

instalirati Groovy

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 Alati

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 Alati

Groovy

Procesor je taj koji izvršava Groovy programa i skripti. U

Može se koristiti za jednostavno testiranje Groovy izrazi.

Groovy Alati

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