Я пытаюсь заменить некоторые символы в строке из картыДоступ к элементам карты при использовании переменного ключа в Groovy
Случай 1
map= ['O':'0', 'L':'1', 'Z':'2', 'E':'3']
"Hey".toUpperCase().toCharArray().each{
print map.get(it,it)
}
В результате
HEY
Случай 2: Я не использую toCharArray()
"Hey".toUpperCase().each{
print map.get(it,it)
}
Результат, как ожидается,
H3Y
Так что я попробовал несколько вариантов при использовании toCharArray()
, и единственный способ получить доступ к значению является использование map."$it"
Почему я могу использовать только map."$it"
для получить доступ к моей карте при использовании toCharArray()
?
Не отвечающий на вопрос, но альтернативой является 'map = ['O': '0', 'L': '1', 'Z': '2', 'E': '3']. WithDefault { Это } ; println "Hey" .toUpperCase(). collect {map [it]} .join() ' –