Häftig | |
---|---|
Språkklass | objektorienterat programmeringsspråk , imperativt programmeringsspråk , skriptspråk , funktionellt programmeringsspråk , multiparadigm programmeringsspråk , tolkat programmeringsspråk , JVM-språk , programvara med öppen källkod och fri programvara |
Framträdde i | 2003 |
Författare | James Strachan [d] |
Utvecklaren | Java Community Process och Apache Software Foundation |
Filtillägg _ | .groovy |
Släpp |
|
Blivit påverkad | Python , Java , Ruby , Perl och Smalltalk |
Licens | Apache License 2.0 och Apache License |
Hemsida |
groovy-lang.org _ _ |
OS | plattformsoberoende |
Mediafiler på Wikimedia Commons |
Groovy är ett objektorienterat programmeringsspråk designat för Java-plattformen som ett komplement till Java-språket med Python- , Ruby- och Smalltalk- funktioner .
Använder java-liknande syntax med dynamisk kompilering till JVM - bytecode och fungerar direkt med annan java-kod och bibliotek . Språket kan användas i alla javaprojekt eller som ett skriptspråk . Det används aktivt som ett Domänorienterat språk för att skriva manus när man arbetar inom ämnesområdet (från matematik till vetenskaplig databehandling), samt för att bygga och testa applikationer ( Gradle ).
Groovy har slutfört sin standardiseringsprocess i Java Community Process (JSR 241).
Huvuddragen i språket som skiljer det från Java är: både statisk och dynamisk typning ; inbyggd syntax för listor , associativa arrayer , arrayer och reguljära uttryck ; överbelastningsoperationer . Stängningar i Groovy föregick Java.
Ett antal populära webbramverk är byggda på Groovy , inklusive Grails och Ratpack , Griffon skrivbordsramverk och Spock testramverket .
Språket har hittat en tillämpning som ett skriptspråk för att utöka kapaciteten hos plattformsprogramvara. Framför allt låter rapportgeneratorn iReport , baserad på JasperReports Java - biblioteket , dig bädda in Groovy-uttryck i rapporter och skriva ytterligare logik på det. Jenkins kontinuerliga integrationssystem låter dig använda automatiseringsskript skapade i Groovy. SoapUI -webbtjänsttestapplikationen stöder att skriva testskript i Groovy [2] .
Groovy-programmering stöds i större IDE [3] , inklusive IntelliJ IDEA (som börjar med version 7 eller tidigare med JetGroovy Plugin), Eclipse (med Groovy Eclipse), Netbeans (inbäddad), VS-kod (via förlängning), Vim (via förlängning) .
Det första omnämnandet av språket var ett blogginlägg av James Strachan [ 4] daterat augusti 2003. Flera versioner släpptes senare mellan 2004 och 2006. Efter att JCP- standardiseringsprocessen började ändrades versionsnumreringen och versionen kallas "1.0". Version "1.0" släpptes den 2 januari 2007 . I december 2007 släpptes Groovy 1.1, denna version numrerades snart om till "1.5" på grund av betydande förändringar i språket.
Strachan lämnade projektet ett år innan släppet av Groovy 1.0 2007, och i juli 2009 skrev Strachan på sin blogg att han kanske inte hade skapat Groovy om han hade läst Martin Odersky et al:s bok från 2003 om Scala-programmering (publicerad 2007) [ 5] .
JSR-241 språkutvecklingsprojekt och kommitté har letts av Guillaume Laforge sedan 2007 . G2One, som var engagerad i utvecklingen och kommersialiseringen av Grails språk och ramverk, förvärvades av SpringSource hösten 2008 , som ett resultat, genom en kedja av sammanslagningar och förvärv ( VMware , Pivotal , EMC ) tillgången överfördes 2017 till Dell Corporation . Från och med 2015 har språket varit ett projekt på toppnivå av Apache Foundation .
Under 2020 släpptes version 3.0.0 med ett antal betydande förbättringar.
Ett klassiskt exempel på att skriva ut en rad med en hälsning:
// Skriv ut kommentarer ( "Hej världen!" )Ett exempel på att skapa och använda en funktion med argument och ett returvärde:
def helloFunction ( name ) { println ( "Hej, ${name}" ) } helloFunction ( "Groovy!" ) // I följande funktion för att beräkna summan av två objekt // är det sista uttrycket returvärdet def sum ( a , b ) { a + b // returnerar resultatet av additionen } print ( summa ( 1 , 2 )) // Denna funktion tar endast numeriska typparametrar def subtraktion ( double a , double b ) { return a - b } skriv ut ( subtraktion ( 6 , 4 ))Deklarera en klass, skapa en instans av den och anropa dess metoder vid programmets huvudingångspunkt (statisk metod main())
class Foo { def doSomething () { def data = [ "name" : "James" , "location" : "London" ] för ( e i data ) { println ( "entry ${e.key} är ${e. värde} " } } def closureExample ( collection ) { collection . varje { println ( "värde ${it}" ) } } static void main ( args ) { def values = [ 1 , 2 , 3 , "abc" ] def foo = new Foo () foo . stängningExempel ( värden ) foo . gör något () } }";" Semikolonet i slutet av raden är valfritt.
Som i Java (sedan version 11) kan Groovy källkod exekveras som ett vanligt skript: för att göra detta måste den innehålla kod utanför klassdefinitionen, eller en klass med en huvudmetod, eller Runnable, eller GroovyTestCase:
#!/usr/bin/env groovy println "Jag kan köra det här skriptet nu!"Strings in Groovy: Java Strings med enkla citattecken och GStrings med dubbla citattecken:
def javaStyleString = 'java String style' def GStringsStyleString = "${javaStyleString}" def j = '${javaStyleString}' def bigGroovyString = """ ${javaStyleString} ${GStringsStyleString} """ print String bigGroovyStringAtt skicka parametrar till metoder, stängningar eller funktioner kan göras utan parentes:
stängning Funktion 1 , 2
Programmeringsspråk | |
---|---|
|
Java | |
---|---|
Plattformar | |
Sun Technologies | |
Viktiga tredjepartstekniker | |
Berättelse |
|
Språkegenskaper | |
Skriptspråk |
|
Java-konferenser |
|