답변:
이것을 사용하십시오 :
def map = [(A):1, (X):2]
값 부분의 경우 자동 "텍스트를 문자열로 변환"이 발생하지 않기 때문에 더 쉽습니다.
def map = [keyA:A, keyX:X]
Map keys are strings by default: [a:1] is equivalent to ['a':1]. This can be confusing if you define a variable named a and that you want the value of to be the key in your map. If this is the case, then you must escape >the key by adding parenthesis..
[(A):1, (X):2]
하면 변수가 String으로 이스케이프됩니다. 를 사용 ["$A":1, (X):2]
하면 "$A"
은 보간 된 문자열로 GString이됩니다. 지도는 GString이 제공하지 않는 키가 변경 불가능할 것으로 예상합니다.
에 또한 요아킴의 대답 , 기존 맵에 항목을 추가하고 싶은 키가 변수 경우, 사용 :
def map = [:]
def A = 'abc'
map[A] = 2
사용하는 경우 :
map.A = 2
범위에 A라는 변수가 있더라도 리터럴 문자열 'A'를 키로 사용한다고 가정합니다.
@tim_yates가 주석에서 지적했듯이 다음을 사용하면 주요 변수도 해결됩니다.
map."$A" = 2
개인적으로 는 변수 이름이 변경되면 [A]
리팩토링 도구가 "$A"
참조를 놓칠 수 있기 때문에 구문 을 사용하는 것을 선호합니다.
map."$A"
구문은 당신과 함께 널 안전지도 네비게이션의 혜택을 제공합니다 map?."$A"
사용 달성 할 수 AFAIK, map[A]
구문
To use the value of a String as the key value of a map, simply surround the variable with parenthesis.