Je vois que {} sont utilisés pour les fermetures, puis je crois que lorsqu'un $ est placé devant des accolades, il fait simplement une substitution de variable dans une chaîne. Je ne trouve pas la documentation sur le fonctionnement de $ dans la référence ... difficile à rechercher malheureusement, et la documentation de Groovy String manque pour introduire cela. Pouvez-vous s'il vous plaît me pointer vers la documentation et/ou expliquer l'opérateur "$" dans Groovy - comment tout cela peut être utilisé? Grails l'étend-il du tout au-delà de Groovy?
Dans une GString (chaîne groovy), toute expression Groovy valide peut être incluse dans le $ {...} y compris les appels de méthode, etc.
Ceci est détaillé dans la page suivante .
Grails n'étend pas l'utilisation de $ au-delà de Groovy. Voici deux utilisations pratiques de $
Dans une GString, vous pouvez utiliser $ sans {} pour évaluer un chemin de propriété, par exemple.
def date = new Date()
println "The time is $date.time"
Si vous souhaitez évaluer une expression qui est plus complexe qu'un chemin de propriété, vous devez utiliser $ {}, par ex.
println "The time is ${new Date().getTime()}"
Accès dynamique à une propriété
def prop = "time"
new Date()."$prop"
Appel dynamique d'une méthode
def prop = "toString"
new Date()."$prop"()
Comme indiqué dans les commentaires, ce n'est vraiment qu'un cas spécial d'interpolation de chaînes, car ce qui suit est également valide
new Date().'toString'()
$
n'est pas un opérateur dans Groovy. Dans la substitution de chaîne, il identifie les variables dans la chaîne - il n'y a pas de magie là-bas. Il s'agit d'un format commun utilisé pour les variables en ligne dans de nombreux modèles et langages de programmation.
Tous les opérateurs Groovy spéciaux sont répertoriés ici: http://groovy-lang.org/operators.html