Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

Groovy

Z Wikipedie, otevřené encyklopedie
Groovy
Logo
Logo
Paradigmaobjektově orientovaný,imperativní, skriptovací,funkcionální
Vznik2003
AutorJames Strachan
VývojářGuillaume LaForge,
Jochen Theodorou,
Paul King,
Cedric Champeau
Poslední verze5.0.3 (30. listopadu 2025)
Typová kontroladynamická, statická, silná, „duck-typing
Ovlivněn jazykyJava,Python,Ruby,Perl,Smalltalk,Objective-C
Ovlivnil jazykyKotlin
OSJakýkoliv podporujícíJVM nebointerpretJavaScriptu
LicenceApache License v2.0
Webgroovy-lang.org

Groovy (anglická výslovnost [ˈgruːvi]) jeobjektově orientovanýprogramovací jazyk proplatformu Java. Jde o alternativu k programovacímu jazykuJava. Lze na něj pohlížet jako naskriptovací jazyk pro javovskou platformu. Inspiraci čerpal z jazykůPython,Ruby,Perl aSmalltalk. Využívá výhody objektového programování, ale zároveň poskytuje zjednodušenou „skriptovací“ syntaxi, která umí „zabalit a rozbalit“ často opakované části kódu. Jedním z jeho cílů je redukovat „povinný“ kód a zjednodušit tak tvorbu webových, databázových či desktopových aplikací. Kompilace je prováděna přímo dobajtkódu, takže jej můžeme použít všude tam, kde funguje Java.

Nastavení prostředí

[editovat |editovat zdroj]

Pro vývoj v jazyce Groovy je potřeba stáhnout binární distribuci např. z domovské stránky. A mít nainstalováno vývojové prostředí Java. Pak už jen stačí nastavit některé proměnné prostředí:

  • přidatGROOVY_HOME proměnnou na adresář, ve kterém je uložena distribuce
  • doPATH proměnné přidat cestu do adresářeGROOVY_HOME/bin
  • a nastavitJAVA_HOME proměnnou na adresář, ve kterém je vaše JDK.

Následně je možné spustit groovy shell příkazemgroovysh nebo GUI konzolu příkazemgroovyConsole.

Některé vlastnosti jazyka Groovy

[editovat |editovat zdroj]

Jednoduchým příkladem může být vypsání věty „Vítej světe!“ na konzolu. V Javě je potřeba kromě samotného příkazu definovat třídu a hlavní metodu:

classVítejSvěte{publicstaticvoidmain(String[]args){System.out.println("Vítej světe!");}}

Stejného výsledku je v jazyce Groovy možno dosáhnout například následujícím jednoduchým způsobem:

println"Vítej světe!"

Takže Groovy doplní všechen ostatní kód (definici třídy a hlavní metody, detaily syntaxe jako jsou závorky) potřebný pro překlad v Javě. Jednotlivé příkazy není zapotřebí zakončovat středníkem.

Dalším zjednodušením je oblast datových typů. Datový typ se implicitně nadefinuje dle vložené hodnoty. A co víc, v případě použití pole, seznamu atd. je možné libovolně vkládat různé datové typy jako je to v následujícím příkladě:

seznamČísel=[1776,-1,33.3333,"pět",928734928763]

Nebo můžeme vytvořit jednoduchou mapu následovně:

výška=["Martin":190,"Helena":155,"Věra":"Neuvedla"]

Groovy častokrát umožňuje více variant správné syntaxe, jako v následujícím příkladě:

println"Martinova výška je: "+výška.Martinprintln"Martinova výška je: "+výška["Martin"]println"Martinova výška je: ${výška.Martin}"

V posledním řádku je proměnná volána zevnitř složených závorek díky znakům${}, které upozorňují, že uvnitř se nachází Groovy výraz.Dále můžeme vložit jednoduchý cyklus na procházení výše uvedené mapy včetně podmínky pro vypsání obsahu:

výška.each{if(it.value=="Neuvedla"){printlnit.key+" neuvedl/a svou výšku."}else{if(it.value<170){printlnit.key+" měří méně než 170 cm."}else{printlnit.key+" měří nejméně 170 cm."}}}

Klíčové slovoit představuje automatickou proměnnou, do které se ukládá aktuální hodnota nebo objekt. V tomto případě je to aktuální záznam v mapě.V příkladu je vidět i použití booleanovských operátorů, které jsou podobné jako v Javě a zahrnují následující možnosti:

==!=>>=<<=

Na rozdíl od Javy však v Groovy operátor== znamená logickou rovnost pro všechny typy atributů. V Javě se např. pro porovnání obsahu dvou atributů obsahujících řetězec musí použít metodaequals().

Uzávěry

[editovat |editovat zdroj]

Dalším zjednodušujícím prvkem Groovy jsouuzávěry (anglickyclosure [ˈkləužə(r)]). V následujícím příkladu je vidět, jak můžeme celou třídu nahradit jednoduchým uzávěrem:

Třída

publicclassDruháMocnina{publicstaticintumocni(intčíslo){returnčíslo*číslo;}}

Uzávěr

defc={číslo->číslo*číslo}

V prvním případě musíme pro vypsání mocniny čísla zavolat statickou metodu třídyDruháMocnina. U uzávěru je metoda uložena v atributuc a pro vypsání mocniny např. čísla 99 nám stačí následující příkaz:

println c(99)

Atribut, ve kterém je uzávěr uložen, pak můžeme předávat napříč programem, jako jakýkoliv jiný atribut.Uzávěr se na první pohled podobá klasickému bloku. Blok je však prováděn hned jak na něj překladač natrefí. Uzávěr je potřeba explicitně zavolat.

Předcházející uzávěr můžeme definovat ještě jednodušeji s využitím klíčového slovait.

def c = { it * it }

Proměnná „it“ v sobě automaticky ukládá parametr, který je při volání uzávěru zadán.

Práce se soubory

[editovat |editovat zdroj]

Relativně jednoduchá je i práce se soubory. Následujícím scriptem vypíšeme na konzolu obsah textového souborutest.txt, přičemž každý řádek bude začínat řetězcemŘádek souboru:

soubor=newFile("C:\\test.txt")tiskniŘádekSouboru={println"Řádek souboru: "+it}soubor.eachLine(tiskniŘádekSouboru)

V definici cesty k souboru je stejně jako v Javě použito dvou lomítek, jelikož se jedná o escape sekvenci.

GUI

[editovat |editovat zdroj]

V Groovy je možné využít všechny třídy z Javovské knihovny AWT či Swing. Avšak Groovy poskytuje i svůj vlastní „SwingBuilder“, který umí vytvářet plnohodnotný GUI deklarativním způsobem. Využívá přitom tzv. Builders, které se postarají o vytváření komplexních objektů, jako například vytváření instancí potomků či volání Swingových metod. Následující příklad vytvoří malé aplikační okno s tlačítkem, které po každém stisknutí vypíše součet všech stisknutí od začátku aplikace.

importgroovy.swing.SwingBuilderimportjava.awt.BorderLayoutasBLpočet=0newSwingBuilder().edt{frame(title:'Okno',size:[300,300],show:true){borderLayout()textlabel=label(text:"Click the button!",constraints:BL.NORTH)button(text:'ClickMe',actionPerformed:{počet++;textlabel.text="Kliknuto ${počet} krát.";println"kliknuto"},constraints:BL.SOUTH)}}

Grails framework

[editovat |editovat zdroj]

Jedním z frameworků postavených na Groovy jazyce je Grails framework. Ten umožňuje rychlejší vytváření náročných webových aplikací. V současnosti je tento framework přímo podporován například i ve vývojovém prostředíNetBeans (od verze 6.8), které se o většinu základní konfigurace postará, a tak si můžete snadno vyzkoušet ukázkové příklady, které v sobě zahrnuje, nebo které jsou k dispozici na domovské stránce Grails. Samotný vývoj pomocí tohoto frameworku je postaven na principu „Convention over Configuration“. To znamená, že vývojář je co nejvíce odlehčen od zdlouhavého rozhodování a konfigurování, přičemž se však musí uspokojit s přednastavenou implementací.

Grails se vyznačuje tzv. architektonickým přístupemmodel-view-controller (MVC). Výsledkem je přehledně strukturovaná aplikace, která si, i v případě velké robustnosti, zachovává relativně snadnou obsluhu a modifikovatelnost.

Reference

[editovat |editovat zdroj]

Externí odkazy

[editovat |editovat zdroj]
Programovací jazyky
abecední seznam programovacích jazyků
multiparadigmatické

AdaC++Common LispDF#GoOberonPerlPHPPythonRakuRubyRustScalaSwiftTcl (Tk) •Vala

strukturované (procedurální)

AWKCCOBOLDCLForthFortranLuaModula-2 /Modula-3PascalPawnPL/SQL

objektové
funkcionální
dotazovací

LINQSPARQLSQLXQueryXSL (XSLTXSL-FOXPath)

logické
výukové
ezoterické
historické

ALGOLAPLBBASICCPL (BCPL) •JMUMPSPL/ISimula 67SNOBOL

další
skriptovací/strojový kódkompilované/interpretovanéinteraktivní/dávkovéWYSIWYG
Pahýl
Pahýl
Tento článek je příliš stručný nebopostrádá důležité informace.
Pomozte Wikipedii tím, že jej vhodněrozšíříte. Nevkládejte všakbez oprávnění cizí texty.
Autoritní dataEditovat na Wikidatech
Citováno z „https://cs.wikipedia.org/w/index.php?title=Groovy&oldid=24601859
Kategorie:
Skryté kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp