Groovy | |
---|---|
Sprog klasse | objektorienteret programmeringssprog , imperativt programmeringssprog , scriptsprog , funktionelt programmeringssprog , multiparadigme programmeringssprog , fortolket programmeringssprog , JVM-sprog , open source-software og gratis software |
Dukkede op i | 2003 |
Forfatter | James Strachan [d] |
Udvikler | Java Community Process og Apache Software Foundation |
Filtypenavn _ | .groovy |
Frigøre |
|
Blev påvirket | Python , Java , Ruby , Perl og Smalltalk |
Licens | Apache License 2.0 og Apache License |
Internet side |
groovy-lang.org _ _ |
OS | på tværs af platforme |
Mediefiler på Wikimedia Commons |
Groovy er et objektorienteret programmeringssprog designet til Java-platformen som et supplement til Java-sproget med Python- , Ruby- og Smalltalk -funktioner .
Bruger java-lignende syntaks med dynamisk kompilering til JVM bytecode og arbejder direkte med andre java-kode og biblioteker . Sproget kan bruges i ethvert java-projekt eller som et scriptsprog . Det bruges aktivt som et domæneorienteret sprog til at skrive manuskripter, når man arbejder inden for fagområdet (fra matematik til videnskabelig databehandling), samt opbygning og test af applikationer ( Gradle ).
Groovy har afsluttet sin standardiseringsproces i Java Community Process (JSR 241).
Hovedtræk ved sproget, der adskiller det fra Java, er: både statisk og dynamisk skrivning ; indbygget syntaks for lister , associative arrays , arrays og regulære udtryk ; overbelastningsoperationer . Lukninger i Groovy gik forud for Java.
En række populære web-frameworks er bygget på Groovy , inklusive Grails og Ratpack , Griffon applikationsrammerne og Spock -testrammerne .
Sproget har fundet anvendelse som et scriptsprog til at udvide mulighederne for platformssoftware. Især giver rapportgeneratoren iReport , baseret på JasperReports Java - biblioteket , dig mulighed for at indlejre Groovy-udtryk i rapporter og skrive yderligere logik på det. Jenkins kontinuerlige integrationssystem giver dig mulighed for at bruge automatiseringsscripts oprettet i Groovy. SoapUI -webservicetestapplikationen understøtter skrivning af testscripts i Groovy [2] .
Groovy-programmering understøttes i større IDE'er [3] , inklusive IntelliJ IDEA (startende med version 7 eller tidligere ved hjælp af JetGroovy Plugin), Eclipse (ved hjælp af Groovy Eclipse), Netbeans (indlejret), VS-kode (via udvidelse), Vim (via udvidelse) .
Den første omtale af sproget var et blogindlæg af James Strachan [ 4] dateret august 2003. Flere versioner blev senere udgivet mellem 2004 og 2006. Efter at JCP- standardiseringsprocessen begyndte , blev versionsnummereringen ændret, og versionen omtales som "1.0". Version "1.0" blev udgivet den 2. januar 2007 . I december 2007 blev Groovy 1.1 udgivet, denne version blev snart omnummereret til "1.5" på grund af væsentlige ændringer i sproget.
Strachan forlod projektet et år før udgivelsen af Groovy 1.0 i 2007, og i juli 2009 skrev Strachan på sin blog, at han måske ikke havde skabt Groovy, hvis han havde læst Martin Odersky et al's bog fra 2003 om Scala-programmering (udgivet i 2007) [ 5] .
JSR-241 sprogudviklingsprojektet og -udvalget har været ledet af Guillaume Laforge siden 2007 . G2One, som var engageret i udvikling og kommercialisering af Grails sprog og rammer, blev erhvervet af SpringSource i efteråret 2008 , som et resultat, gennem en kæde af fusioner og opkøb ( VMware , Pivotal , EMC ) aktivet blev overført i 2017 til Dell Corporation . Fra 2015 har sproget været et projekt på topniveau af Apache Foundation .
I 2020 blev version 3.0.0 udgivet med en række væsentlige forbedringer.
Et klassisk eksempel på udskrivning af en linje med en hilsen:
// Kommentar print ( "Hej verden!" )Et eksempel på oprettelse og brug af en funktion med argumenter og en returværdi:
def helloFunction ( name ) { println ( "Hej, ${name}" ) } helloFunction ( "Groovy!" ) // I den følgende funktion til at beregne summen af to objekter // er det sidste udtryk returværdien def sum ( a , b ) { a + b // returnerer resultatet af additionen } print ( sum ( 1 , 2 )) // Denne funktion tager kun numeriske type parametre def subtraktion ( double a , double b ) { return a - b } print ( subtraktion ( 6 , 4 ))Erklære en klasse, oprette en instans af den og kalde dens metoder ved programmets hovedindgangspunkt (statisk metode main())
klasse Foo { def doSomething () { def data = [ "name" : "James" , "location" : "London" ] for ( e i data ) { println ( "entry ${e.key} er ${e. værdi} " } } def closureExample ( collection ) { collection . hver { println ( "værdi ${it}" ) } } static void main ( args ) { def værdier = [ 1 , 2 , 3 , "abc" ] def foo = new Foo () foo . closureExample ( værdier ) foo . gør Noget () } }";" Semikolonet i slutningen af linjen er valgfrit.
Som i Java (siden version 11), kan Groovy kildekode udføres som et almindeligt script: for at gøre dette skal det indeholde kode uden for klassedefinitionen eller en klasse med en hovedmetode eller Runnable eller GroovyTestCase:
#!/usr/bin/env groovy println "Jeg kan udføre dette script nu!"Strings in Groovy: Java Strings med enkelte anførselstegn og GStrings med dobbelte anførselstegn:
def javaStyleString = 'java String style' def GStringsStyleString = "${javaStyleString}" def j = '${javaStyleString}' def bigGroovyString = " " " ${javaStyleString} ${GStringsStyleString} GroovyString bigOverførsel af parametre til metoder, lukninger eller funktioner kan udføres uden parentes:
lukning Funktion 1 , 2
Programmeringssprog | |
---|---|
|
Java | |
---|---|
Platforme | |
Sun Technologies | |
Nøgle tredjepartsteknologier | |
Historie |
|
Sprogegenskaber | |
Scripting sprog |
|
Java konferencer |
|