Groovy (idioma)

Groovy
Logo.
Fecha de la primera versión 2003
Paradigmas Propósito , imperativo
Autor Proceso de la comunidad de Java
Última versión 3.0.7 (30 de noviembre de 2020)
Influenciado por Java , Python , Ruby , Smalltalk
Escrito en Java
Sistema de explotación Multiplataforma
Licencia Licencia de Apache versión 2.0
Sitio web www.groovy-lang.org
Extensión de archivo maravilloso

Groovy es el nombre de un lenguaje de programación orientado a objetos para la plataforma Java . Es un sustituto del lenguaje Java para esta plataforma y está inspirado en Python , Ruby y Smalltalk . Es el tema de la especificación JSR 241.

Groovy usa una sintaxis muy parecida a Java, con llaves, y se compila directamente , ya sea dinámicamente sobre la marcha o convencionalmente con un compilador de código de bytes .

Groovy se integra y es totalmente compatible con la JVM ya que el código de bytes es el mismo. Por tanto, puede:

Groovy se puede comparar con BeanShell , el objetivo de hacer un lenguaje de scripting cercano a Java es el mismo, la implementación es diferente.

Principales características del idioma

Groovy tiene algunas características que lo diferencian del estándar Java:

Comparación entre Java y Groovy

Un ejemplo que se muestra en las cadenas de salida estándar que tienen como máximo cuatro letras.

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); } }

Maravilloso:

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

Lenguaje de marcado

Una de las características notables de Groovy es su soporte nativo para lenguajes de marcado como XML y HTML . Este soporte permite definir y manipular mediante la programación de varios tipos de estructuras con una sintaxis común.

Por ejemplo, un código Groovy que produce 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 myXMLDoc

Salida del programa:

<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>

Otros ejemplos

Hola mundo  :

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

Muestra una lista ordenada de nombres convertidos en mayúsculas:

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

Muestre los primeros siete cuadrados sucesivos de 2:

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

Definir clases de usuario:

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} !"

Apéndices

enlaces externos

Notas y referencias

  1. Versión 3.0.7  " ,30 de noviembre de 2020(consultado el 11 de diciembre de 2020 )
  2. (en) "  JSR 241: El lenguaje de programación maravilloso  " en jpc.org