Skip to content

Syntaxe courante de Groovy

Groovy est un langage de programmation flexible basé sur la plateforme Java, qui intègre de nombreuses fonctionnalités puissantes issues de Python, Ruby et Smalltalk. Voici quelques syntaxes courantes de Groovy pour vous aider à démarrer rapidement.

Déclaration de variables

En Groovy, les variables peuvent être déclarées avec le mot-clé def ou en spécifiant explicitement leur type.

groovy
// Utilisation du mot-clé def
def name = "Groovy"

// Spécification explicite du type
String greeting = "Hello, ${name}!"

Types de données

Groovy prend en charge plusieurs types de données, notamment les entiers, les flottants, les booléens et les chaînes de caractères.

groovy
def a = 10          // Entier
def b = 10.5        // Flottant
def c = true        // Booléen
def d = "Groovy"    // Chaîne de caractères

Opérations logiques

Groovy supporte les opérateurs logiques tels que && (ET), || (OU) et ! (NON).

groovy
def a = 10
def b = 20

if (a > 0 && b > 0) {
    println "Les deux nombres sont positifs"
} else if (a > 0 || b > 0) {
    println "Au moins un des nombres est positif"
} else {
    println "Les deux nombres sont non positifs"
}

Instructions conditionnelles

Groovy supporte les instructions conditionnelles if-else et switch.

groovy
def number = 10
if (number > 0) {
    println "Le nombre est positif"
} else {
    println "Le nombre est non positif"
}

switch (number) {
    case 0:
        println "Le nombre est zéro"
        break
    case { it > 0 }:
        println "Le nombre est positif"
        break
    default:
        println "Le nombre est négatif"
}

Boucles

Groovy propose les boucles for, while et do-while.

groovy
// Boucle for
for (i in 0..9) {
    println i
}

// Boucle while
def i = 0
while (i < 10) {
    println i++
}

// Boucle do-while
def j = 0
do {
    println j++
} while (j < 10)

Chaînes de caractères

Concaténation de chaînes

En Groovy, on peut utiliser l’opérateur + ou la syntaxe ${} pour concaténer des chaînes.

groovy
def name = "Groovy"
def greeting = "Hello, " + name + "!"
println greeting  // Affiche Hello, Groovy!

def greeting2 = "Hello, ${name}!"
println greeting2  // Affiche Hello, Groovy!

Troncation de chaînes

La méthode substring permet de récupérer une portion d’une chaîne.

groovy
def str = "Hello, Groovy!"
println str.substring(7)  // Affiche Groovy !
println str.substring(0, 5)  // Affiche Hello

Remplacement de chaînes

La méthode replace sert à remplacer une partie d’une chaîne.

groovy
def str = "Hello, Groovy!"
println str.replace("Groovy", "Java")  // Affiche Hello, Java !

Découpage de chaînes

La méthode split permet de diviser une chaîne en un tableau.

groovy
def str = "Hello, Groovy!"
def parts = str.split(", ")
println parts[0]  // Affiche Hello
println parts[1]  // Affiche Groovy !

Extraction par tokenisation

La méthode tokenize sépare une chaîne en une liste et permet d’accéder à des éléments précis via leurs index.

groovy
def str = "Hello, Groovy!"
println str.tokenize(",")[1]  // Affiche Groovy !

Suppression des espaces

La méthode trim élimine les espaces au début et à la fin d’une chaîne.

groovy
def str = "  Hello, Groovy!  "
println str.trim()  // Affiche Hello, Groovy !

Longueur d’une chaîne

L’attribut length permet d’obtenir la longueur d’une chaîne.

groovy
def str = "Hello, Groovy!"
println str.length()  // Affiche 14

Vérification de la présence d’un sous‑string

La méthode contains permet de vérifier si une chaîne contient un sous‑string donné.

groovy
def str = "Hello, Groovy!"
println str.contains("Groovy")  // Affiche true

Recherche d’un sous‑string

La méthode indexOf indique la position d’un sous‑string dans une chaîne.

groovy
def str = "Hello, Groovy!"
println str.indexOf("Groovy")  // Affiche 7

Comparaison de chaînes

Les opérateurs ==, !=, <, >, <= et >= permettent de comparer des chaînes.

groovy
def str1 = "Hello, Groovy!"
def str2 = "Hello, Java!"
println str1 == str2  // Affiche false
println str1 != str2  // Affiche true
println str1 < str2  // Affiche true
println str1 > str2  // Affiche false
println str1 <= str2  // Affiche true
println str1 >= str2  // Affiche false

Échappement de caractères

Le caractère \ sert à échapper certains caractères spéciaux, comme \n pour représenter un saut de ligne.

groovy
def str = "Hello,\nGroovy!"
println str  // Affiche Hello,
             // Groovy !

Templates de chaînes

Groovy permet d’intégrer des variables dans une chaîne grâce à la syntaxe ${}.

groovy
def name = "Groovy"
def greeting = "Hello, ${name}!"
println greeting  // Affiche Hello, Groovy !

Validation par expression régulière

L’opérateur ==~ permet d’effectuer une validation via une expression régulière.

groovy
def emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
def str = "google@163.com"
println str ==~ emailPattern  // Affiche true

Chaînes multi‑lignes

Les chaînes multi‑lignes peuvent être définies en utilisant trois guillemets doubles """ ou triples simples '''.

groovy
def multiLineStr = """
    C'est une chaîne multi‑lignes
    en Groovy.
"""
println multiLineStr

Listes (List)

En Groovy, les listes sont une structure de données très utilisée, pouvant contenir des éléments de différents types. Voici quelques syntaxes courantes pour manipuler les listes.

Définition d’une liste

Une liste peut être définie entre crochets [].

groovy
def list = [1, 2, 3, 'Groovy', true]

Accès aux éléments d’une liste

Les éléments d’une liste sont accessibles via leur index, commençant à 0.

groovy
def list = [1, 2, 3, 'Groovy', true]
println list[3]  // Affiche Groovy

Modification d’un élément

Un élément d’une liste peut être modifié via son index.

groovy
def list = [1, 2, 3, 'Groovy', true]
list[3] = 'Java'
println list  // Affiche [1, 2, 3, 'Java', true]

Ajout d’un élément

On peut ajouter un élément à une liste à l’aide de la méthode add ou de l’opérateur de décalage vers la gauche <<.

groovy
def list = [1, 2, 3]
list.add(4)
println list  // Affiche [1, 2, 3, 4]

list << 5
println list  // Affiche [1, 2, 3, 4, 5]

Suppression d’un élément

La méthode remove permet de supprimer un élément d’une liste.

groovy
def list = [1, 2, 3, 4, 5]
list.remove(0)
println list  // Affiche [2, 3, 4, 5]

Taille d’une liste

La méthode size permet d’obtenir la taille d’une liste.

groovy
def list = [1, 2, 3, 4, 5]
println list.size()   // Affiche 5

Parcours d’une liste

On peut parcourir les éléments d’une liste à l’aide d’une boucle for.

groovy
def list = [1, 2, 3, 4, 5]
for (item in list) {
    println item
}

On peut également utiliser la méthode each pour parcourir une liste.

groovy
def list = [1, 2, 3, 4, 5]
list.each { println it }

Transformation d’une liste

La méthode collect permet de transformer chaque élément d’une liste.

groovy
def list = [1, 2, 3, 4, 5]
def newList = list.collect { it * 2 }
println newList  // Affiche [2, 4, 6, 8, 10]

Filtrage d’une liste

find

Retourne le premier élément satisfaisant une condition donnée.

groovy
def list = [1, 2, 3, 4, 5]
println list.find { it % 2 == 0 }  // Affiche 2

findAll

Retourne une nouvelle liste contenant tous les éléments répondant à la condition.

groovy
def list = [1, 2, 3, 4, 5]
def newList = list.findAll { it % 2 == 0 }
println newList  // Affiche [2, 4]

Vérification d’une condition

any

Vérifie si au moins un élément répond à la condition.

groovy
def list = [1, 2, 3, 4, 5]
println list.any { it % 2 == 0 }  // Affiche true

every

Vérifie si tous les éléments répondent à la condition.

groovy
def list = [1, 2, 3, 4, 5]
println list.every { it % 2 == 0 }  // Affiche false

Découpage d’une liste

La méthode subList permet d’extraire une portion d’une liste.

groovy
def list = [1, 2, 3, 4, 5]
println list.subList(1, 4)  // Affiche [2, 3, 4]

Tri d’une liste

La méthode sort permet de trier une liste.

groovy
def list = [3, 1, 4, 2, 5]
println list.sort()  // Affiche [1, 2, 3, 4, 5]

Inversion d’une liste

La méthode reverse permet d’inverser une liste.

groovy
def list = [1, 2, 3, 4, 5]
println list.reverse()  // Affiche [5, 4, 3, 2, 1]

Vérification d’une présence

La méthode contains permet de vérifier si une liste contient un élément donné.

groovy
def list = [1, 2, 3, 4, 5]
println list.contains(3)  // Affiche true
println list.contains(6)  // Affiche false

Concaténation de listes

La méthode plus ou l’opérateur + permet de joindre deux listes.

groovy
def list1 = [1, 2, 3]
def list2 = [4, 5, 6]
println list1.plus(list2)  // Affiche [1, 2, 3, 4, 5, 6]
println list1 + list2      // Affiche [1, 2, 3, 4, 5, 6]

Vidage d’une liste

La méthode clear permet de vider une liste.

groovy
def list = [1, 2, 3, 4, 5]
list.clear()
println list  // Affiche []

Cartes (Map)

En Groovy, les cartes (Maps) sont une structure de données très utilisée pour stocker des paires clé‑valeur. Voici quelques syntaxes courantes pour manipuler les cartes.

Définition d’une carte

Une carte peut être définie entre crochets [:] ou entre accolades {}.

groovy
def map = [:]
map = ["name": "Groovy", "version": 2.5]

Accès à une valeur

On accède à la valeur associée à une clé via cette dernière.

groovy
def map = ["name": "Groovy", "version": 2.5]
println map["name"]  // Affiche Groovy

Modification d’une valeur

On peut modifier la valeur associée à une clé via son index.

groovy
def map = ["name": "Groovy", "version": 2.5]
map["name"] = "Java"
println map  // Affiche [name:Java, version:2.5]

Ajout d’une paire clé‑valeur

On peut ajouter une nouvelle paire clé‑valeur à une carte à l’aide de la méthode put ou en assignant directement une valeur.

groovy
def map = ["name": "Groovy"]
map.put("version", 2.5)
println map  // Affiche [name:Groovy, version:2.5]

map["author"] = "James"
println map  // Affiche [name:Groovy, version:2.5, author:James]

Suppression d’une paire

La méthode remove permet de supprimer une paire clé‑valeur d’une carte.

groovy
def map = ["name": "Groovy", "version": 2.5]
map.remove("version")


println map  // Affiche [name:Groovy]

Taille d’une map

On peut utiliser la méthode size pour obtenir la taille de la map.

groovy
def map = ["name": "Groovy", "version": 2.5]
println map.size()  // Affiche 2

Parcourir une map

On peut utiliser la méthode each pour parcourir les paires clé-valeur de la map.

groovy
def map = ["name": "Groovy", "version": 2.5]
map.each { key, value ->
    println "${key}: ${value}"
}

Vérifier l’existence d’une clé ou d’une valeur

On peut utiliser les méthodes containsKey et containsValue pour vérifier si une clé ou une valeur est présente dans la map.

groovy
def map = ["name": "Groovy", "version": 2.5]
println map.containsKey("name")  // Affiche true
println map.containsValue(2.5)  // Affiche true

Vider une map

On peut utiliser la méthode clear pour vider la map.

groovy
def map = ["name": "Groovy", "version": 2.5]
map.clear()
println map  // Affiche [:]

Fusionner des maps

On peut utiliser la méthode putAll pour ajouter tous les éléments d’une map à une autre.

groovy
def map1 = ["name": "Groovy"]
def map2 = ["version": 2.5]
map1.putAll(map2)
println map1  // Affiche [name:Groovy, version:2.5]

Obtenir toutes les clés ou toutes les valeurs

On peut utiliser les méthodes keySet et values pour récupérer l’ensemble des clés ou des valeurs de la map.

groovy
def map = ["name": "Groovy", "version": 2.5]
println map.keySet()  // Affiche [name, version]
println map.values()  // Affiche [Groovy, 2.5]

Fonctions

En Groovy, les fonctions sont appelées méthodes (Method). Elles peuvent être définies au sein d’une classe ou comme partie d’un script. Voici quelques syntaxes courantes pour définir et appeler des fonctions en Groovy.

Définir une fonction

On peut définir une fonction à l’aide du mot-clé def.

groovy
def greet(name) {
    return "Hello, ${name}!"
}

Appeler une fonction

Une fois la fonction définie, on peut l’appeler en passant son nom et ses arguments.

groovy
def result = greet("Groovy")
println result  // Affiche Hello, Groovy!

Fonction avec paramètres par défaut

Il est possible de spécifier des valeurs par défaut pour les paramètres lors de la définition d’une fonction.

groovy
def greet(name = "World") {
    return "Hello, ${name}!"
}

println greet()        // Affiche Hello, World!
println greet("Groovy") // Affiche Hello, Groovy!

Fonction à plusieurs paramètres

On peut définir une fonction qui accepte plusieurs arguments.

groovy
def add(a, b) {
    return a + b
}

println add(3, 5)  // Affiche 8

Fonction anonyme

Il est possible de définir une fonction anonyme et de l’affecter à une variable ou de la passer en argument.

groovy
def multiply = { a, b -> a * b }
println multiply(3, 5)  // Affiche 15

Fonction avec arguments variables

On peut définir une fonction qui accepte un nombre variable d’arguments.

groovy
def sum(... numbers) {
    def total = 0
    for (number in numbers) {
        total += number
    }
    return total
}

println sum(1, 2, 3, 4)  // Affiche 10

Fonction prenant une closure en argument

On peut définir une fonction qui accepte une closure comme argument.

groovy
def operate(a, b, closure) {
    return closure(a, b)
}

def add = { x, y -> x + y }
println operate(3, 5, add)  // Affiche 8

Fonction renvoyant plusieurs valeurs

Il est possible de définir une fonction qui renvoie plusieurs valeurs ; celles-ci seront regroupées dans une liste.

groovy
def getCoordinates() {
    return [10, 20]
}

def (x, y) = getCoordinates()
println "x: ${x}, y: ${y}"  // Affiche x: 10, y: 20

Fonction récursive

On peut définir une fonction récursive, c’est-à-dire qui s’appelle elle-même à l’intérieur de sa propre définition.

groovy
def factorial(n) {
    if (n <= 1) {
        return 1
    } else {
        return n * factorial(n - 1)
    }
}

println factorial(5)  // Affiche 120