Pouca gente sabe disto: Groovy aceita que criemos funções cujos parâmetros possam possuir valores opcionais.
O código abaixo fala por si mesmo:
// Repare: defini o valor default do parâmetro c igual a 3
def imprima(c = 3, d) {
println c
println d
}
// Saida:
// imprime 3 primeiro e 34 em seguida
imprima(d=34)
// Saida:
// Imprimirá 4 primeiro e 5 em seguida
imprima(4, 5)
// Saida:
// Imprimirá 3 e em seguida 55
imprima(55)
// Gera erro, pois o parâmetro d não possui valor default
imprima()