Cómo usar una variable para la parte clave de un mapa
Digamos que tengo
def A = "abc"
def X = "xyz"
¿Cómo puedo crear un Map
donde, en lugar de
def map = [A:1, X:2]
Obtengo en cambio el equivalente a escribir
def map = [abc:1, xyz:2]
Pero puede usar las variables A
y X
para la clave?
P.D.: La misma pregunta para la parte de valor del mapa.
2 answers
Usa esto:
def map = [(A):1, (X):2]
Para la parte de valor es aún más fácil, ya que no hay un automagic" convertir texto a cadena " sucediendo:
def map = [keyA:A, keyX:X]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-13 06:44:59
Además de La respuesta de Joachim , si desea agregar entradas a un mapa existente y las claves son variables, use:
def map = [:]
def A = 'abc'
map[A] = 2
Si usa:
map.A = 2
Se asume que desea usar la cadena literal 'A' como clave (aunque hay una variable llamada A en el ámbito.
Actualizar
Como @tim_yates señaló en un comentario, una variable clave también se resolverá si utiliza:
map."$A" = 2
Aunque personalmente prefiero usar la sintaxis [A]
porque las herramientas de refactorización pueden perder la referencia "$A"
si la variable se cambia de nombre
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:20