Groovy Skriptveiledning for nybegynnere

Hva er en Groovy Manus?

Apache Groovy er en objektorientert og Java syntakskompatibelt programmeringssprรฅk bygget for Java plattform. Dette dynamiske sprรฅket har mange funksjoner som ligner pรฅ Python, Ruby, Smalltalk og Pero. Groovy kildekoden blir kompilert inn Java Bytekode slik at den kan kjรธre pรฅ hvilken som helst plattform som har JRE installert. Groovy utfรธrer ogsรฅ mange oppgaver bak scenen som gjรธr den mer smidig og dynamisk.

Groovy sprรฅk kan brukes som et skriptsprรฅk for Java plattform. Det er nesten som en superversjon av Java som tilbyr Javabedriftens evner. Den tilbyr ogsรฅ mange produktivitetsfunksjoner som DSL-stรธtte, stenginger og dynamisk skriving. I motsetning til noen andre sprรฅk, er den designet som en fรธlgesvenn, ikke en erstatning for Java.

Hvorfor Groovy?

Her er hovedgrunnene til hvorfor du bรธr bruke og lรฆre Groovy-

  • Groovy er et smidig og dynamisk sprรฅk
  • Sรธmlรธs integrasjon med alle eksisterende Java gjenstander og biblioteker
  • Fรธles lett og naturlig รฅ Java utviklere
  • Mer kortfattet og meningsfull kode sammenlignet med Java
  • Du kan bruke den sรฅ mye eller sรฅ lite du vil med Java apps

Groovy Historie

  • 2003: Utviklet av Bob McWhirter & James Strachan
  • 2004: Sett i drift i JSR 241, men den ble forlatt
  • 2005: Brakt tilbake av Jeremy Rayner og Guillaume Laforge
  • 2007: Groovy versjon 1.0
  • 2012: Groovy versjon 2
  • 2014: Groovy versjon 2.3 (offisiell stรธtte gitt for JDK 8)
  • 2015: Groovy ble et prosjekt hos Apache Software Foundation

Funksjoner av Groovy

  • Liste, kart, rekkevidde, bokstavelige ord i regulรฆre uttrykk
  • Multimetode og metaprogrammering
  • Groovy klasser og skript lagres vanligvis i .groovy-filer
  • Skript inneholder Groovy uttalelser uten klasseerklรฆring.
  • Skript kan ogsรฅ inneholde metodedefinisjoner utenfor klassedefinisjoner.
  • Den kan kompileres og fullt ut integreres med tradisjonelle Java sรธknad.
  • Sprรฅknivรฅstรธtte for kart, lister, regulรฆre uttrykk
  • Stรธtter nedleggelser, dynamisk skriving, metaobjektprotokoll
  • Stรธtte for statisk og dynamisk skriving og operatรธroverbelastning
  • Ordrett erklรฆring for lister (matriser), kart, omrรฅder og regulรฆre uttrykk

Hvordan du installerer Groovy

Trinn 1) Forsikre deg om at du har det Java installerte.

Trinn 2) Gรฅ til http://groovy-lang.org/download.html og klikk pรฅ installer.

installere Groovy

Merk: Du kan ogsรฅ installere Groovy ved รฅ bruke zip-filen eller som en Eclipse IDE. I denne Groovy veiledning, vil vi holde oss til Windows Installer

Trinn 3) Start det nedlastede installasjonsprogrammet. Velg sprรฅk og klikk OK

installere Groovy

Trinn 4) Lansering. I velkomstskjermen klikker du pรฅ NESTE

installere Groovy

Trinn 5) Enig med lisensvilkรฅrene

installere Groovy

Trinn 6) Velg komponenter du vil installere og klikk pรฅ NESTE

installere Groovy

Trinn 7) Velg Installation Directory og klikk NESTE

installere Groovy

Trinn 8) Velg Start-meny-mappe og klikk pรฅ NESTE

installere Groovy

Trinn 9) Nรฅr installasjonen er fullfรธrt, la banene standard og klikk NESTE

installere Groovy

Trinn 10) Klikk pรฅ NESTE

installere Groovy

Trinn 11) I startmenyen sรธk etter Groovy Konsoll

installere Groovy

Groovy Hei verden eksempel

Tenk pรฅ at vi รธnsker รฅ skrive ut en enkel streng "Hello World" i Java. Koden for รฅ oppnรฅ strengen Groovy hei verden ville vรฆre

public class Demo {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

Koden ovenfor er gyldig i begge Java og Groovy as Groovy er et supersett av Java. Men fordelen med Groovy er at vi kan gjรธre unna klasseoppretting, offentlig metodeopprettelse osv. og oppnรฅ samme utgang med en enkeltlinjekode som fรธlger:

println "Hello World."

Det er ikke behov for semikolon

Det er ikke behov for parenteser

System.out.println reduseres til println

Groovy Variabler

In Java, statisk binding er obligatorisk. Det betyr at typen av en variabel mรฅ deklareres pรฅ forhรฅnd.

public class Demo {
    public static void main(String[] args) {
        int x = 104;
        System.out.println(x);
        //x = "Guru99";
    }
}

I eksemplet ovenfor pรฅ dette Groovy veiledning, type variabel (heltall) er deklarert pรฅ forhรฅnd ved รฅ bruke nรธkkelordet "int". Hvis du skulle deklarere et flyttallnummer, bruker du nรธkkelordet float.

Hvis du prรธver รฅ tilordne en strengverdi til en int (fjernkommentarlinje #5), fรฅr du fรธlgende feilmelding

Demo.java:5: error: incompatible types: String cannot be converted to int
x = "Guru99";

I motsetning, Groovy stรธtter dynamisk typing. Variabler er definert ved hjelp av nรธkkelordet "def", og typen av en variabel trenger ikke รฅ deklareres pรฅ forhรฅnd. Kompilatoren finner ut variabeltypen under kjรธring, og du kan til og med variabeltypen.

Tenk pรฅ fรธlgende groovy eksempel,

def x = 104
println x.getClass()
x = "Guru99"
println x.getClass()

Utgang:

class java.lang.Integer
class java.lang.String

In Groovy, kan du lage flerlinjestrenger. Bare sรธrg for at du omslutter strengen i tre anfรธrselstegn.

def x = """Groovy
at
Guru99"""
println x

Utgang:

Groovy
at
Guru99

Merknader: Du kan fortsatt variable typer som byte, short, int, long, etc med Groovy. Men du kan ikke endre variabeltypen dynamisk slik du eksplisitt har erklรฆrt den.

Vurder fรธlgende kode:

int x = 104
println x
x = "Guru99"

Det gir fรธlgende feil

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 operatรธr er et symbol som forteller kompilatoren รฅ gjรธre visse matematiske eller logiske manipulasjoner.

Groovy har fรธlgende fem typer operatรธrer โ€“

  • Aritmetiske operatorer: Add (+), Subtrahere (-), Multiplikasjon (*), Divisjon(/)
  • Relasjonelle operatorer: lik (==), Ikke lik (!=), Less enn (<) Less enn eller lik (<=), Stรธrre enn (>), Stรธrre enn eller lik (>=)
  • Logiske operatorer: Og (&&), Eller(||), Ikke(!)
  • Bitvise operatorer: And(&), Or(|), (^), Xor eller Exclusive-eller operator
  • Oppdragsoperatรธrer: Negasjonsoperator (~)

Groovy-lรธkker

In Java, vil 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);
        }
    }
}

Utgang:

0
1
2
3
4

Du kan oppnรฅ samme utgang i Groovy bruker opp til nรธkkelord

0.upto(4) {println "$it"}

Du fรฅr samme utgang som ovenfor. $it er en lukking som gir verdien av gjeldende lรธkke.

Tenk pรฅ fรธlgende kode

2.upto(4) {println "$it"}

Det gir en utgang

2
3
4

Du kan ogsรฅ bruke nรธkkelordet "tider" for รฅ fรฅ samme utdata

5.times{println "$it"}

Tenk pรฅ at du vil skrive ut 0,2,4 med for loop inn Java

public class Demo {
    public static void main(String[] args) {
        for (int x = 0; x <= 5; x=x+2) {
            System.out.println(x);
        }
    }
}

Utgang:

0
2
4

Du kan bruke trinnmetoden for det samme

0.step(7,2){println "$it"}

Groovy- Beslutningstaking

Uttalelser Deception
hvis Uttalelse Som i Java, hvis-setningen utfรธres hvis betingelsen er sann.
if/else-erklรฆring I if/else-setningen blir fรธrst en betingelse evaluert i if-setningen. Hvis betingelsen er sann, utfรธrer du setningene etter det. Den stopper fรธr den andre tilstanden og gรฅr ut av loopen. Imidlertid, hvis betingelsen er usann, utfรธres setningene i else-setningsblokken. Sรฅ gรฅr den ut av lรธkken.
Nestet hvis-erklรฆring Den brukes nรฅr det er et krav om รฅ ha flere if-setninger.
Bytt erklรฆring Den nestede if-else-setningen kan bli uleselig nรฅr du har flere betingelser. For รฅ gjรธre koden mer lesbar brukes switch statement.
Nestet brytererklรฆring In Groovy er ogsรฅ mulig รฅ bruke nestede brytersetninger.

Groovy Liste

Listestruktur lar deg lagre en samling av dataelementer. I en Groovy programmeringssprรฅk, inneholder listen en sekvens av objektreferanser. Den viser ogsรฅ en posisjon i sekvensen. En liste bokstavelig presenteres som en serie objekter atskilt med komma og omsluttet av firkantede parenteser.

Eksempel pรฅ Grrovy-liste:

En liste over strenger- ['Angular', 'Nodejs,]

En liste over objektreferanser โ€“ ['Groovy', 2,4 2.6]

En liste over heltallsverdier โ€“ [16, 17, 18, 19]

En tom liste- [ ]

Fรธlgende er listemetoder tilgjengelig i Groovy:

Metoder Tekniske beskrivelser
legge til() Lar deg legge til den nye verdien pรฅ slutten av denne listen.
inneholder() Returnerer sann hvis denne listen inneholder en bestemt verdi.
fรฅ() Returnerer elementet i den bestemte posisjonen
er tom() Returnerer sann verdi hvis Listen ikke inneholder noen elementer
minus() Denne kommandoen lar deg lage en ny liste som bestรฅr av elementene i originalen, unntatt de som er spesifisert i samlingen.
pluss() Lar deg lage en ny liste sammensatt av elementene i originalen sammen med nevnt i samlingen.
pop () Fjerner det siste elementet fra listen
ta vekk() Fjerner elementet pรฅ den spesifikke posisjonen
omvendt() Opprett en ny liste som reverserer elementene i den opprinnelige listen
stรธrrelse() Returnerer antall elementer i denne listen
sortere() Returnerer en sortert kopi

Vurder fรธlgende Groovy eksempel pรฅ manus

def y = ["Guru99", "is", "Best", "for", "Groovy"]
println y
y.add("Learning")
println(y.contains("is"))
println(y.get(2))
println(y.pop())

Utgang:

[Guru99, is, Best, for, Groovy]
true
Best
Learning

Groovy Kart

Et kart Groovy er en samling nรธkkelverdipar

Eksempler Groovy kart:

  • [Opplรฆring: 'Java, Opplรฆring: 'Groovy] โ€“ Samling av nรธkkelverdi-par som har Tutorial som nรธkkel og deres respektive verdier
  • [ : ] Representerer et tomt kart

Her er en liste over kartmetoder tilgjengelig i Groovy.

Metoder Tekniske beskrivelser
inneholder nรธkkel() Sjekk at kartet inneholder denne nรธkkelen eller ikke?
fรฅ() Denne kommandoen slรฅr opp nรธkkelen i dette kartet og returnerer den tilsvarende verdien. Hvis du ikke finner noen oppfรธring i dette kartet, vil det returnere null.
keySet() Gjรธr det mulig รฅ finne et sett med nรธklene i dette kartet
sette() Knytter den angitte verdien til den gitte nรธkkelen i dette kartet. Hvis kartet tidligere inneholdt en tilordning for denne nรธkkelen. Da vil den gamle verdien erstattes av den angitte verdien.
stรธrrelse() Returnerer antall nรธkkelverdi-tilordninger.
verdier() Denne kommandoen returnerer en samlingsvisning av verdiene.

Groovy Eksempel:

def y = [fName:'Jen', lName:'Cruise', sex:'F']
print y.get("fName")

Produksjon

Jen

Groovy- Stenginger

En groovy lukking er et stykke kode pakket inn som et objekt. Det fungerer som en metode eller en funksjon.

Eksempel pรฅ enkel lukking

def myClosure = {
       println "My First Closure"	
}
myClosure()

Utgang:

My First Closure

En lukking kan akseptere parametere. Listen over identifiserer er komma atskilt med

en pil (->) som markerer slutten av parameterlisten.

def myClosure = {
       a,b,c->
       y = a+b+c
       println y
}
myClosure(1,2,3)

Utgang:

6

En stenging kan returnere en verdi.

def myClosure = {
       a,b,c->
       return (a+b+c)
}
println(myClosure(1,2,3))

Utgang:

6

Det er mange innebygde lukkinger som "It", "identity", etc. Lukkinger kan ta andre lukkinger som parametere.

Groovy Vs. Java

Groovy Java
In Groovy, standard tilgangsspesifikasjoner er offentlig. Det betyr at en metode uten noen spesifisert tilgangsmodifikator er offentlig og tilgjengelig utenfor klasse- og pakkegrensene. In Java, er standard tilgangsmodifikator en pakke, dvs. hvis du ikke spesifiserer tilgangsmodifikator for felt, metoder eller klasse, blir den pakkeprivat,
Gettere og settere genereres automatisk for klassemedlemmer. Java, mรฅ du definere getters og setters metode for felt
Groovy tillater variabel substitusjon ved bruk av doble anfรธrselstegn med strenger. Java stรธtter ikke variabel substitusjon.
Det er valgfritt รฅ skrive informasjon. Det er obligatorisk รฅ skrive inn informasjon Java.
Groovy det er ikke nรธdvendig รฅ slutte med semikolon. In Java, hver setning ender med semikolon.
Groovy er automatisk en innpakningsklasse kalt Script for hvert program In Java, trenger du hovedmetoden for รฅ gjรธre en klasse kjรธrbar.

Myter om Groovy

Myte Reality
Vi kan bruke Groovy bare for skripting. Den kan brukes til skripting. Du kan imidlertid utfรธre mange andre oppgaver bortsett fra det.
Groovy handler om nedleggelser. ยซDet er bare funksjonelt programmeringssprรฅkยป. Groovy adopterer fra funksjonelle programmeringssprรฅk som Lisp eller Closure.
Groovy er et ideelt valg hvis du vil gjรธre TDD Denne uttalelsen er sann. Imidlertid er det absolutt ikke den eneste grunnen til รฅ bruke Groovy.
Du kan bruke Groovy bare hvis du vil bruke Grails. Grails er et kraftig nettutviklingsrammeverk.

Men Groovy tilbyr mer enn det.

Ulemper ved รฅ bruke Groovy

  • JVM og Groovy skriptets starttid er treg, noe som begrenser skripting pรฅ OS-nivรฅ
  • Groovy er ikke helt akseptert i andre samfunn.
  • Det er ikke praktisk รฅ bruke Groovy uten รฅ bruke IDE
  • Groovy kan vรฆre langsommere, noe som รธker utviklingstiden
  • Groovy kan trenge mye minne
  • Kunnskap om Java er avgjรธrende.

Groovy verktรธy

Vi skal diskutere 3 viktige verktรธy i dette Groovy manusopplรฆring

1. groovysh: Utfรธrer kode interaktivt.

2. groovyConsole: GUI for interaktiv kodekjรธring

3. groovy: Utfรธrer groovy skript. Du kan bruke den som Perl, PythonOsv

Groovysh

  • kommandolinjeskall
  • Hjelper deg รฅ utfรธre Groovy kode interaktivt
  • Tillater รฅ legge inn setninger eller hele skript

Groovy verktรธy

Groovy trรธste

  • Swing-grensesnitt som fungerer som et minimalt Groovy utviklingsredaktรธr.
  • Lar deg samhandle Groovy kode
  • Hjelper deg รฅ laste og kjรธre Groovy skriptfiler

Groovy verktรธy

Groovy

Det er prosessoren som kjรธrer Groovy programmer og skript. U

Den kan brukes til รฅ teste enkelt Groovy uttrykkene.

Groovy verktรธy

Sammendrag

  • Groovy er et objektorientert programmeringssprรฅk som brukes til Java plattform
  • Groovy scripting tilbyr sรธmlรธs integrasjon med alle eksisterende Java gjenstander og biblioteker
  • Bob McWhirter & James Strachan utviklet groovy i 2003
  • Liste, kart, rekkevidde, bokstaver i regulรฆre uttrykk er viktige trekk ved Groovy
  • Fire typer operatรธrer stรธtter ved Groovy er 1. Relasjonell 2.Logisk 3. Bitvis 4. Tilordning
  • Groovy utfรธrt beslutningstaking ved รฅ bruke if, if/else, Nested if, switch, Netsted switch-setninger
  • Listestruktur lar deg lagre en samling av dataelementer
  • Et kart Groovy er en samling nรธkkelverdipar
  • In Groovy, Gettere og settere genereres automatisk for klassemedlemmer
  • In Java, kan du bruke metoden for getters og setters for felt
  • Den stรธrste myten om Groovy er at den bare kan brukes til skripting som ikke er riktig
  • Litt tid Groovy kan vรฆre langsommere, noe som รธker utviklingstiden
  • Tre Groovy Verktรธy er: groovysh som kjรธrer kode, groovy Console som er GUI for interaktiv kodekjรธring og groovy som kjรธrer skript

Oppsummer dette innlegget med: