Groovy (kieli)

Groovy
Logo.
Ensimmäisen version päivämäärä 2003
Paradigmat Tarkoitus , välttämätön
Kirjoittaja Java-yhteisöprosessi
Viimeinen versio 3.0.7 (30. marraskuuta 2020)
Vaikuttanut Java , Python , Ruby , Smalltalk
Kirjoitettu Java
Käyttöjärjestelmä Monitasoinen
Lisenssi Apache-lisenssiversio 2.0
Verkkosivusto www.groovy-lang.org
Tiedostopääte groovy

Groovy on yrityksen nimi, jos olio- ohjelmointikieli varten Java . Se korvaa Java-kielen tälle alustalle ja on saanut inspiraationsa Pythonista , Rubysta ja Smalltalkista . Se on JSR 241 -määrityksen kohde .

Groovi käyttää syntaksi hyvin lähellä Java, henkseleillä, ja on suoraan käännetty , joko dynaamisesti lennossa , tai tavanomaisesti kanssa bytecode kääntäjä .

Groovy integroituu ja on täysin yhteensopiva JVM: n kanssa, koska tavukoodi on sama. Siksi hän voi:

Groovyä voidaan verrata BeanShelliin , tavoite tehdä Java-lähelle komentosarjakieli on sama, toteutus on erilainen.

Kielen pääominaisuudet

Groovyllä on joitain ominaisuuksia, jotka erottavat sen tavallisesta Javasta:

Java ja Groovy vertailu

Esimerkki, joka näyttää tavallisissa tulostusmerkkijonoissa, joissa on enintään neljä kirjainta.

Java 5:

class Filter { public static void main(String[] args) { for (String item : Arrays.asList("Rod", "Carlos", "Chris")) if (item.length() <= 4) System.out.println(item); } }

Java 8:

class Filter { public static void main(String[] args) { Arrays.asList("Rod", "Carlos", "Chris").stream() .filter(item -> item.length() <= 4) .foreach(System.out::println); } }

Groovy:

list = ["Rod", "Carlos", "Chris"] shorts = list.findAll { it.size() <= 4 } shorts.each { println it }

Merkintäkieli

Yksi Groovyn merkittävistä ominaisuuksista on sen alkuperäinen tuki merkintäkielille, kuten XML ja HTML . Tämän tuen avulla voidaan määritellä ja manipuloida ohjelmoimalla monen tyyppisiä rakenteita yhteisellä syntaksilla.

Esimerkiksi Groovy-koodi, joka tuottaa XML: n:

import groovy.xml.MarkupBuilder def myXMLDoc = new MarkupBuilder() myXMLDoc.workbook { worksheet(caption:"Employees") { row(fname:"John", lname:"McDoe") row(fname:"Nancy", lname:"Davolio") } worksheet(caption:"Products") { row(name:"Veeblefeetzer", id:"sku34510") row(name:"Prune Unit Zappa", id:"sku3a550") } } println myXMLDoc

Ohjelman poistuminen:

<workbook> <worksheet caption='Employees'> <row fname="John" lname="McDoe" /> <row fname="Nancy" lname="Davolio" /> </worksheet> <worksheet caption='Products'> <row name="Veeblefeetzer" id="sku34510" /> <row name="Prune Unit Zappa" id="sku3a550" /> </worksheet> </workbook>

Muita esimerkkejä

Hei maailma  :

print "hello world" def name='World'; println "Hello $name!"

Näytä järjestetty luettelo suurikokoisiksi käännetyistä nimistä:

def names = ['Jean', 'John', 'Jill'] println names.collect{ it.toUpperCase() }.sort()

Näytä seitsemän ensimmäistä peräkkäistä neliötä 2:

def num = 2G 7.times { println "$num" num *= num }

Määritä käyttäjäluokat:

class Person { String name String givenname int age String sex } class User extends Person { String userid String email } def titi = new User(name: 'titi') titi.userid = 'titi1412' titi.email = '[email protected]' titi.age = 40 def rominet = new Person(name: 'rominet', age: 40, sex: 'uhum') println "Hé ${rominet.name} , ici ${titi.name}, un vieux copain de promo. Écris-moi sur ${titi.email} !"

Liitteet

Ulkoiset linkit

Huomautuksia ja viitteitä

  1. Julkaisu 3.0.7  " ,30. marraskuuta 2020(katsottu 11. joulukuuta 2020 )
  2. (sisään) "  JSR 241: The Groovy Programming Language  " sivustolla jpc.org