Groovy | |
---|---|
Nyelvóra | objektum-orientált programozási nyelv , kötelező programozási nyelv , szkriptnyelv , funkcionális programozási nyelv , többparadigmás programozási nyelv , értelmezett programozási nyelv , JVM nyelv , nyílt forráskódú szoftverek és ingyenes szoftverek |
Megjelent | 2003 |
Szerző | James Strachan [d] |
Fejlesztő | Java Community Process és Apache Software Foundation |
Fájlkiterjesztés _ | .groovy |
Kiadás |
|
Befolyásolva | Python , Java , Ruby , Perl és Smalltalk |
Engedély | Apache License 2.0 és Apache License |
Weboldal |
groovy-lang.org _ _ |
OS | platformközi |
Médiafájlok a Wikimedia Commons oldalon |
A Groovy egy objektum-orientált programozási nyelv , amelyet a Java platformhoz terveztek a Java nyelv kiegészítéseként Python , Ruby és Smalltalk funkciókkal .
Java-szerű szintaxist használ dinamikus fordítással JVM bájtkódba , és közvetlenül együttműködik más Java kódokkal és könyvtárakkal . A nyelv bármely java projektben vagy szkriptnyelvként használható . Aktívan használják Domain-orientált nyelvként szkriptek írásához a tantárgyi területen (matematikától a tudományos adatfeldolgozásig), valamint alkalmazások készítéséhez és teszteléséhez ( Gradle ).
A Groovy a Java Community Process (JSR 241) szabványosítási folyamatát befejezte.
A nyelv főbb jellemzői, amelyek megkülönböztetik a Java-tól: mind statikus , mind dinamikus gépelés ; beépített szintaxis listákhoz , asszociatív tömbökhöz , tömbökhöz és reguláris kifejezésekhez ; túlterhelési műveletek . A Groovy bezárásai megelőzték a Java-t.
Számos népszerű webes keretrendszer épül a Groovyra , köztük a Grails és a Ratpack , a Griffon alkalmazáskeretrendszer és a Spock tesztelési keretrendszer .
A nyelv szkriptnyelvként talált alkalmazásra a platformszoftverek képességeinek bővítésére. Különösen az iReport jelentéskészítő , amely a JasperReports Java könyvtáron alapul , lehetővé teszi Groovy kifejezések beágyazását a jelentésekbe, és további logikát írhat rájuk. A Jenkins folyamatos integrációs rendszere lehetővé teszi a Groovyban létrehozott automatizálási szkriptek használatát. A SoapUI webszolgáltatástesztelő alkalmazás támogatja a tesztszkriptek Groovy [2] nyelven történő írását .
A Groovy programozást a főbb IDE -k támogatják [3] , beleértve az IntelliJ IDEA -t (7-es vagy korábbi verziótól kezdve a JetGroovy Plugin használatával), az Eclipse - t (Groovy Eclipse használatával), a Netbeans -t (beágyazott), a VS Code -ot (kiterjesztésen keresztül), a Vim -et (kiterjesztésen keresztül) .
A nyelv első említése James Strachan [ 4] 2003 augusztusában kelt blogbejegyzése volt . Később több verzió is megjelent 2004 és 2006 között. A JCP szabványosítási folyamatának megkezdése után a verziószámozás megváltozott, és a verzió neve "1.0". Az "1.0" verzió 2007. január 2- án jelent meg . 2007 decemberében jelent meg a Groovy 1.1, ezt a verziót hamarosan átszámozták "1.5"-re a nyelv jelentős változásai miatt.
Strachan egy évvel a Groovy 1.0 2007-es megjelenése előtt hagyta el a projektet, és 2009 júliusában Strachan azt írta a blogjában, hogy lehet, hogy nem ő hozta volna létre a Groovy-t, ha elolvasta Martin Odersky és társai 2003-as könyvét a Scala programozásról (2007-ben jelent meg) [ 5] .
A JSR-241 nyelvfejlesztési projektet és bizottságot 2007 óta Guillaume Laforge vezeti . A G2One-t, amely a Grails nyelv és keretrendszer fejlesztésével és kereskedelmi forgalomba hozatalával foglalkozott, a SpringSource 2008 őszén vásárolta meg , ennek eredményeként fúziók és felvásárlások láncolata ( VMware , Pivotal , EMC ) révén az eszköz. 2017-ben átkerült a Dell Corporationhoz . 2015-től a nyelv az Apache Alapítvány legfelső szintű projektje volt .
2020-ban megjelent a 3.0.0-s verzió számos jelentős fejlesztéssel.
Klasszikus példa egy sor nyomtatására üdvözlettel:
// Megjegyzés nyomtatása ( "Hello world!" )Példa egy függvény létrehozására és használatára argumentumokkal és visszatérési értékkel:
def helloFunction ( name ) { println ( "Hello, ${name}" ) } helloFunction ( "Groovy!" ) // A következő függvényben két objektum összegének kiszámításához // az utolsó kifejezés a visszatérési érték def sum ( a , b ) { a + b // az összeadás eredményét adja vissza } print ( összeg ( 1 , 2 )) // Ez a függvény csak numerikus típusú paramétereket vesz fel def kivonás ( double a , double b ) { return a - b } nyomtatás ( kivonás ( 6 , 4 ))Osztály deklarálása, példány létrehozása és metódusainak meghívása a program fő belépési pontján (statikus metódus main())
class Foo { def doSomething () { def data = [ "name" : "James" , "location" : "London" ] for ( e in data ) { println ( "${e.key} bejegyzés ${e. érték} " } } def closurePélda ( gyűjtemény ) { gyűjtemény . every { println ( "érték ${it} " ) } static void main ( args ) { def értékek = [ 1 , 2 , 3 , " abc " ] def foo = new Foo ( ) foo . closurePélda ( értékek ) foo . csinálj valamit () } }";" A pontosvessző a sor végén nem kötelező.
A Java-hoz hasonlóan (a 11-es verzió óta) a Groovy forráskód is végrehajtható normál szkriptként: ehhez tartalmaznia kell az osztálydefiníción kívüli kódot, vagy egy fő metódussal rendelkező osztályt, vagy Runnable, vagy GroovyTestCase:
#!/usr/bin/env groovy println "Most már futtathatom ezt a szkriptet!"Strings in Groovy: Java karakterláncok szimpla idézőjelekkel és GStringek kettős idézőjelekkel:
def javaStyleString = 'java String style' def GStringsStyleString = "${javaStyleString}" def j = '${javaStyleString}' def bigGroovyString = """ ${javaStyleString} ${GStringsStyleString} big String " " GrovyString }Paraméterek átadása metódusoknak, lezárásoknak vagy függvényeknek zárójelek nélkül történhet:
closureFunkció 1 , 2
Programozási nyelvek | |
---|---|
|
Jáva | |
---|---|
Platformok | |
Sun Technologies | |
Harmadik fél kulcsfontosságú technológiái | |
Sztori |
|
Nyelvi tulajdonságok | |
Szkriptnyelvek |
|
Java konferenciák |
|