close

Groovy

Przejdź do nawigacji Przejdź do wyszukiwania
Groovy
Obraz logo
Klasa jezykowa obiektowy język programowania , imperatywny język programowania , język skryptowy , funkcjonalny język programowania , wieloparadygmatyczny język programowania , interpretowany język programowania , język JVM , oprogramowanie open source i oprogramowanie bezpłatne
Pojawił się w 2003
Autor James Strachan [d]
Deweloper Java Community Process i Apache Software Foundation
Rozszerzenie pliku .groovy
Wydanie
Byłem pod wpływem Python , Java , Ruby , Perl i Smalltalk
Licencja Apache License 2.0 i Apache License
Stronie internetowej groovy-lang.org _ 
_
OS wieloplatformowy
 Pliki multimedialne w Wikimedia Commons

Groovy  to obiektowy język programowania zaprojektowany dla platformy Java jako uzupełnienie języka Java z funkcjami Python , Ruby i Smalltalk .

Używa składni podobnej do java z dynamiczną kompilacją do kodu bajtowego JVM i działa bezpośrednio z innym kodem i bibliotekami java . Język może być używany w dowolnym projekcie java lub jako język skryptowy . Jest aktywnie wykorzystywany jako język zorientowany na domenę do pisania skryptów podczas pracy w danym obszarze (od matematyki po naukowe przetwarzanie danych), a także do tworzenia i testowania aplikacji ( Gradle ).

Groovy zakończył proces standaryzacji w Java Community Process (JSR 241).

Główne cechy języka odróżniające go od Javy to: zarówno statyczne , jak i dynamiczne pisanie ; wbudowana składnia list , tablic asocjacyjnych , tablic i wyrażeń regularnych ; operacje przeciążające . Zamknięcia w Groovy poprzedzały Javę.

Na Groovy zbudowanych jest wiele popularnych frameworków internetowych , w tym Grails i Ratpack , framework aplikacji desktopowych Griffon [en] oraz framework testowy Spock .

Język znalazł zastosowanie jako język skryptowy do rozszerzania możliwości oprogramowania platformy. W szczególności generator raportów iReport , oparty na bibliotece JasperReports Java , umożliwia osadzanie wyrażeń Groovy w raportach i zapisywanie na nich dodatkowej logiki. System ciągłej integracji Jenkins umożliwia korzystanie ze skryptów automatyzacji stworzonych w Groovy. Aplikacja testująca usługi sieci Web SoapUI obsługuje pisanie skryptów testowych w Groovy [2] .

Programowanie Groovy jest obsługiwane w głównych IDE [3] , w tym IntelliJ IDEA (od wersji 7 lub wcześniejszej przy użyciu wtyczki JetGroovy), Eclipse (przy użyciu Groovy Eclipse), Netbeans (wbudowany), VS Code (poprzez rozszerzenie), Vim (poprzez rozszerzenie) .

Historia

Pierwszą wzmianką o języku był post na blogu Jamesa Strachana [ 4 ] z sierpnia 2003 roku. Kilka wersji zostało później wydanych w latach 2004-2006. Po rozpoczęciu procesu standaryzacji JCP numeracja wersji została zmieniona i wersja jest określana jako „1.0”. Wersja „1.0” została wydana 2 stycznia 2007 roku . W grudniu 2007, Groovy 1.1 został wydany, ta wersja została wkrótce zmieniona na "1.5" ze względu na znaczące zmiany w języku.  

Strachan opuścił projekt na rok przed wydaniem Groovy 1.0 w 2007 roku, a w lipcu 2009 Strachan napisał na swoim blogu, że mógłby nie stworzyć Groovy, gdyby przeczytał książkę Martina Odersky'ego i innych z 2003 roku na temat programowania Scala (opublikowaną w 2007) [ 5] .

Projektowi i komitetowi rozwoju języka JSR-241 przewodniczy Guillaume Laforge od 2007 roku . Firma G2One, zajmująca się rozwojem i komercjalizacją języka i frameworka Grails, została przejęta przez SpringSource [en] jesienią 2008 roku, w wyniku łańcucha fuzji i przejęć ( VMware , Pivotal , EMC ) aktywa została przeniesiona w 2017 roku do firmy Dell Corporation . Od 2015 roku język jest projektem najwyższego poziomu Fundacji Apache .

W 2020 roku została wydana wersja 3.0.0 z wieloma znaczącymi ulepszeniami.

Image
Zrzut ekranu Groovy Console

Przykłady

Klasyczny przykład drukowania linii z pozdrowieniami:

// 
Wydruk komentarza ( "Witaj świecie!" )

Przykład tworzenia i używania funkcji z argumentami i wartością zwracaną:

def  helloFunction ( name )  { 
    println ( "Hello, ${name}" ) 
} 
helloFunction ( "Groovy!" ) 
// W poniższej funkcji obliczającej sumę dwóch obiektów 
// ostatnie wyrażenie jest wartością zwracaną 
def  sum ( a ,  b )  { 
    a  +  b  // zwraca wynik dodawania 
} 
print ( sum ( 1 ,  2 ) ) 
// Ta funkcja przyjmuje tylko parametry typu numerycznego 
def  odejmowanie ( double  a ,  double  b )  { 
    return  a  -  b 
} 
drukuj ( odejmowanie ( 6 ,  4 ))

Deklarowanie klasy, tworzenie jej instancji i wywoływanie jej metod w głównym punkcie wejścia programu (metoda statyczna main())

class  Foo  { 
  def  doSomething ()  { 
    def  data  =  [ "nazwa" :  "James" ,  "lokalizacja" :  "Londyn" ] 
    for  ( e  in  data )  { 
      println ( "wpis ${e.key} to ${e. wartość} " } 
    }
  
  
  def  zamknięciePrzykład ( kolekcja )  { 
    kolekcja . każdy  {  println ( "wartość ${it}" )  } 
  }
  
  static  void  main ( args )  { 
    wartości def  = [ 1 , 2 , 3 , "abc" ] def foo = new Foo () foo . zamknięciePrzykład ( wartości ) foo . zrobićCoś () } }     
        
    
    
  

";" Średnik na końcu wiersza jest opcjonalny.

Niektóre funkcje

Podobnie jak w Javie (od wersji 11), kod źródłowy Groovy może być wykonywany jak zwykły skrypt: w tym celu musi zawierać kod spoza definicji klasy lub klasę z główną metodą, Runnable lub GroovyTestCase:

#!/usr/bin/env groovy 
println  "Mogę teraz wykonać ten skrypt!"

Strings in Groovy: Java Strings z pojedynczymi cudzysłowami i GStrings z podwójnymi cudzysłowami:

def  javaStyleString  =  'styl java String' 
def  GStringsStyleString  =  "${javaStyleString}" 
def  j  =  '${javaStyleString}'  
def  bigGroovyString  =  """ 
    ${javaStyleString} 
    ${GStringsStyleString} 
""" 
println  bigGroovyString

Przekazywanie parametrów do metod, zamknięć lub funkcji może odbywać się bez nawiasów:

funkcja zamknięcia  1 , 2

Notatki

  1. Wydanie 4.0.5 - 2022.
  2. SOAP UI: Przykładowe skrypty na Groovy .
  3. Lista obsługiwanych środowisk IDE Zarchiwizowana od oryginału w dniu 4 lutego 2008 r. na oficjalnej stronie Groovy Zarchiwizowane 2 marca 2014 r.
  4. James Strachan. Zarchiwizowane od oryginału 05.04.2007, Groovy to narodziny nowego dynamicznego języka dla platformy Java .
  5. Scala jako długoterminowy zamiennik java/javac? (06.07.2009). Pobrano 7 stycznia 2012 r. Zarchiwizowane z oryginału 10 lutego 2012 r. „Mogę szczerze powiedzieć, że gdyby ktoś pokazał mi książkę Programming in Scala autorstwa Martina Odersky'ego, Lexa Spoona i Billa Vennersa w 2003 roku, prawdopodobnie nigdy bym nie stworzył Groovy'ego”

Linki