Array ( [0] => 15505368 [id] => 15505368 [1] => cswiki [site] => cswiki [2] => Groovy [uri] => Groovy [3] => Soundofsilence.jpg [img] => Soundofsilence.jpg [4] => [day_avg] => [5] => [day_diff] => [6] => [day_last] => [7] => [day_prev_last] => [8] => [oai] => [9] => [is_good] => [10] => [object_type] => [11] => 1 [has_content] => 1 [12] => [oai_cs_optimisticky] => ) Array ( [0] => {{Infobox - programovací jazyk [1] => | název = Groovy [2] => | logo = Groovy-logo.svg [3] => | popisek loga = Logo [4] => | paradigma = [[Objektově orientované programování|objektově orientovaný]], [[Imperativní programování|imperativní]], skriptovací, [[Funkcionální programování|funkcionální]] [5] => | vznik = 2003 [6] => | autor = James Strachan [7] => | vývojář = Guillaume LaForge,
Jochen Theodorou,
Paul King,
Cedric Champeau [8] => | poslední verze = 2.4.14 [9] => | datum poslední verze = [[24. únor]]a [[2018]] [10] => | poslední testovací verze = 3.0.0 Alpha 1 [11] => | datum poslední testovací verze = [[25. listopad]]u [[2017]] [12] => | typování = dynamická, statická, silná, „[[duck-typing]]“ [13] => | implementace = [14] => | dialekty = [15] => | ovlivněno = [[Java (programovací jazyk)|Java]], [[Python]], [[Ruby]], [[Perl]], [[Smalltalk]], [[Objective-C]] [16] => | ovlivnil = [[Kotlin (programovací jazyk)|Kotlin]] [17] => | operační systém = Jakýkoliv podporující [[Java Virtual Machine|JVM]] nebo [[Interpret (software)|interpret]] [[JavaScript]]u [18] => | licence = [[Apache License]] v2.0 [19] => | web = [http://groovy-lang.org groovy-lang.org] [20] => }} [21] => '''Groovy''' ([[Angličtina#V.C3.BDslovnost|anglická výslovnost]] [ˈgruːvi]) je [[objektově orientované programování|objektově orientovaný]] [[programovací jazyk]] pro [[Java (platforma)|platformu Java]]. Jde o alternativu k programovacímu jazyku [[Java (programovací jazyk)|Java]]. Lze na něj pohlížet jako na [[skriptovací jazyk]] pro javovskou platformu. Inspiraci čerpal z jazyků [[Python]], [[Ruby]], [[Perl]] a [[Smalltalk]]. 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 do [[bajtkód]]u, takže jej můžeme použít všude tam, kde funguje Java. [22] => [23] => == Nastavení prostředí == [24] => 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í: [25] => * přidat GROOVY_HOME proměnnou na adresář, ve kterém je uložena distribuce [26] => * do PATH proměnné přidat cestu do adresáře GROOVY_HOME/bin [27] => * a nastavit JAVA_HOME proměnnou na adresář, ve kterém je vaše JDK. [28] => Následně je možné spustit groovy shell příkazem groovysh nebo GUI konzolu příkazem groovyConsole. [29] => [30] => == Některé vlastnosti jazyka Groovy == [31] => Jednoduchým příkladem může být vypsání věty „[[Hello world|Vítej světe!]]“ na konzolu. V Javě je potřeba kromě samotného příkazu definovat třídu a hlavní metodu: [32] => [33] => class VítejSvěte { [34] => public static void main(String[] args) { [35] => System.out.println ("Vítej světe!"); [36] => } [37] => } [38] => [39] => [40] => Stejného výsledku je v jazyce Groovy možno dosáhnout například následujícím jednoduchým způsobem: [41] => [42] => println "Vítej světe!" [43] => [44] => [45] => 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. [46] => [47] => 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ě: [48] => [49] => seznamČísel = [1776, -1, 33.3333, "pět", 928734928763] [50] => [51] => [52] => Nebo můžeme vytvořit jednoduchou mapu následovně: [53] => [54] => výška = ["Martin":190, "Helena":155, "Věra":"Neuvedla"] [55] => [56] => [57] => Groovy častokrát umožňuje více variant správné syntaxe, jako v následujícím příkladě: [58] => [59] => println "Martinova výška je: " + výška.Martin [60] => println "Martinova výška je: " + výška["Martin"] [61] => println "Martinova výška je: ${výška.Martin}" [62] => [63] => [64] => 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. [65] => Dále můžeme vložit jednoduchý cyklus na procházení výše uvedené mapy včetně podmínky pro vypsání obsahu: [66] => [67] => výška.each { [68] => if (it.value == "Neuvedla") { [69] => println it.key + " neuvedl/a svou výšku." [70] => } else { [71] => if (it.value < 170) { [72] => println it.key + " měří méně než 170 cm." [73] => } else { [74] => println it.key + " měří nejméně 170 cm." [75] => } [76] => } [77] => } [78] => [79] => [80] => Klíčové slovo it 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ě. [81] => 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: [82] => [83] => == [84] => != [85] => > [86] => >= [87] => < [88] => <= [89] => [90] => [91] => 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 metoda equals(). [92] => [93] => === Closures === [94] => Dalším zjednodušujícím prvkem Groovy je tzv. „closure“ [ˈkləužə(r)]. V následujícím příkladu je vidět, jak můžeme celou třídu nahradit jednoduchým closure: [95] => [96] => ''Třída'' [97] => [98] => public class DruháMocnina { [99] => public static int umocni(int číslo) { [100] => return číslo * číslo; [101] => } [102] => } [103] => [104] => [105] => ''Closure'' [106] => [107] => def c = { číslo -> číslo * číslo } [108] => [109] => [110] => V prvním případě musíme pro vypsání mocniny čísla zavolat statickou metodu třídy DruháMocnina. U closure je metoda uložena v atributu c a pro vypsání mocniny např. čísla 99 nám stačí následující příkaz: [111] => println c(99) [112] => Atribut, ve kterém je closure uložena pak můžeme předávat napříč programu, jako kterýkoliv jiný atribut. [113] => Closure se na první pohled podobá klasickému bloku. Blok je však prováděn hned jak na něj překladač natrefí. Closure je potřeba explicitně zavolat. [114] => [115] => Předcházející closure můžeme definovat ještě jednodušeji s využitím klíčového slova it. [116] => def c = { it * it } [117] => Proměnná „it“ v sobě automaticky ukládá parametr, který je při volání closure zadán. [118] => [119] => === Práce se soubory === [120] => Relativně jednoduchá je i práce se soubory. Následujícím scriptem vypíšeme na konzolu obsah textového souboru test.txt, přičemž každý řádek bude začínat řetězcem Řádek souboru: [121] => [122] => soubor = new File("C:\\test.txt") [123] => tiskniŘádekSouboru = { println "Řádek souboru: " + it } [124] => soubor.eachLine(tiskniŘádekSouboru) [125] => [126] => V definici cesty k souboru je stejně jako v Javě použito dvou lomítek, jelikož se jedná o escape sekvenci. [127] => [128] => === GUI === [129] => 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. [130] => [131] => import groovy.swing.SwingBuilder [132] => import java.awt.BorderLayout as BL [133] => [134] => počet = 0 [135] => new SwingBuilder().edt { [136] => frame(title:'Okno', size:[300,300], show: true) { [137] => borderLayout() [138] => textlabel = label(text:"Click the button!", constraints: BL.NORTH) [139] => button(text:'Click Me', [140] => actionPerformed: { počet++; textlabel.text = "Kliknuto ${počet} krát."; println "kliknuto" }, [141] => constraints:BL.SOUTH) [142] => } [143] => } [144] => [145] => [146] => == Grails framework == [147] => 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í. [148] => [149] => Grails se vyznačuje tzv. architektonickým přístupem [[model-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. [150] => [151] => == Reference == [152] => * {{cs}} [http://www.groovy.cz český portál o jazyku Groovy] {{Wayback|url=http://www.groovy.cz/ |date=20130218060810 }} [153] => * {{en}} [http://www.grails.org domovská stránka frameworku Grails] [154] => [155] => == Externí odkazy == [156] => * {{Commonscat}} [157] => * [http://www.root.cz/serialy/groovy-v-prikladech Seriál o jazyku Groovy] na [[root.cz]] [158] => [159] => {{Programovací jazyky}} [160] => {{Pahýl}} [161] => {{Autoritní data}} [162] => [163] => [[Kategorie:Programovací jazyky]] [164] => [[Kategorie:JVM programovací jazyky]] [165] => [[Kategorie:Software pod licencí Apache]] [] => )
good wiki

Groovy

Groovy (anglická výslovnost [ˈgruːvi]) je objektově orientovaný programovací jazyk pro platformu Java. Jde o alternativu k programovacímu jazyku Java.

More about us

About

Expert Team

Vivamus eget neque lacus. Pellentesque egauris ex.

Award winning agency

Lorem ipsum, dolor sit amet consectetur elitorceat .

10 Year Exp.

Pellen tesque eget, mauris lorem iupsum neque lacus.

You might be interested in

,'Java (programovací jazyk)','Smalltalk','Ruby','Perl','Python','Kotlin (programovací jazyk)','Java (platforma)','Imperativní programování','programovací jazyk','JavaScript','objektově orientované programování','Java Virtual Machine'