Построить карту динамически в шаблоне скорости

Я пытаюсь обновить различные карты, передавая их имя динамически через функции. Возможно ли достичь? Потому что я столкнулся с некоторой проблемой в коде ниже. Но я ссылался на эту ссылку, чтобы динамически создавать имена переменных по скорости, и там говорится, что мы можем динамически создавать имена переменных. Поэтому я уверен, что для этой динамически создаваемой карты также возможны некоторые операции размещения. Есть ли способ?

.vm

#set($sampleArray = [])
#set($Map1 = {})
#set($Map2 = {})
#sampleTest( 'adsdasd' 'q1' 'Map1')
#sampleTest( 'dsadsad' 'ans1' 'Map1')
#sampleTest('fgbfd'  'q2' 'Map1')
#sampleTest( 'fdmieS' 'ans2' 'Map1')

#sampleTest('hhhfs'  'q4' 'Map2')
#sampleTest( 'sdfq' 'ans4' 'Map2')

#macro( sampleTest $Str1 $expectedString $MapStr)
#set ($d = '$')
#set ($varName = "${d}$MapStr")    -- setting dynamic name of map
    $varName.put($expectedString, $Str1)
    #if ($varName.size()%2 == 0 )
        $sampleArray.add($varName)  -- adding maps to array after every size of map is 2
        #set($varName = {})         -- emptying map after map size is 2
    #end
#end

$sampleArray
$Map1
$Map2

Фактический вывод

[]
{}
{}

Ожидаемый результат

[{q1=adsdasd, ans1=dsadsad},{q2=fgbfd, ans2=fdmieS},{q4=hhhfs, ans4=sdfq}]
{q2=fgbfd, ans2=fdmieS}
{q4=hhhfs, ans4=sdfq}

0 ответов

Другие вопросы по тегам