Disons que j'ai
def A = "abc"
def X = "xyz"
comment créer un Map
où, au lieu de
def map = [A:1, X:2]
Je reçois à la place l'équivalent de l'écriture
def map = [abc:1, xyz:2]
mais peut utiliser une variable A
et X
pour la clé?
P.S .: Même question pour la partie valeur de la carte.
Utilisez ceci:
def map = [(A):1, (X):2]
Pour la partie valeur, c'est encore plus facile, car il n'y a pas de "conversion de texte en chaîne" automatique:
def map = [keyA:A, keyX:X]
Suite à réponse de Joachim , si vous souhaitez ajouter des entrées à une carte existante et que les clés sont des variables, utilisez:
def map = [:]
def A = 'abc'
map[A] = 2
Si tu utilises:
map.A = 2
Il est supposé que vous souhaitez utiliser la chaîne littérale "A" comme clé (même s'il existe une variable nommée A dans la portée.
Comme @tim_yates l'a souligné dans un commentaire, une variable clé sera également résolue si vous utilisez:
map."$A" = 2
mais personnellement, je préfère utiliser le [A]
syntaxe car les outils de refactoring peuvent manquer le "$A"
référence si la variable est renommée