Groovy | ||
Dato for første versjon | 2003 | |
---|---|---|
Paradigmer | Formål , viktig | |
Forfatter | Java fellesskapsprosess | |
Siste versjon | 3.0.7 (30. november 2020) | |
Påvirket av | Java , Python , Ruby , Smalltalk | |
Skrevet i | Java | |
Operativsystem | Kryssplattform | |
Tillatelse | Apache-lisens versjon 2.0 | |
Nettsted | www.groovy-lang.org | |
Filutvidelse | groovy | |
Groovy er navnet på et objektorientert programmeringsspråk for Java-plattformen . Det er en erstatning for Java-språket for denne plattformen og er inspirert av Python , Ruby og Smalltalk . Det er gjenstand for JSR 241- spesifikasjonen .
Groovy bruker en syntaks veldig nær Java, med krøllete bukseseler, og er direkte kompilert , enten dynamisk på farten , eller konvensjonelt med en bytecode- kompilator .
Groovy integreres og er fullt kompatibel med JVM siden bytekoden er den samme. Han kan derfor:
Groovy kan sammenlignes med BeanShell , målet om å lage et skriptspråk nær Java er det samme, implementeringen er annerledes.
Groovy har noen funksjoner som skiller den fra standard Java:
Et eksempel som vises i standard utgangsstrenger med maksimalt fire bokstaver.
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 }En av de bemerkelsesverdige funksjonene i Groovy er dens opprinnelige støtte for markup-språk som XML og HTML . Denne støtten gjør det mulig å definere og manipulere ved å programmere flere typer strukturer med en felles syntaks.
For eksempel en Groovy-kode som produserer XML:
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 myXMLDocProgramavslutning:
<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>Vis en ordnet liste med navn slått til store bokstaver:
def names = ['Jean', 'John', 'Jill'] println names.collect{ it.toUpperCase() }.sort()Vis de syv første påfølgende rutene på 2:
def num = 2G 7.times { println "$num" num *= num }Definer brukerklasser:
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} !"