我有一些问题を使用键 - 值映射到速度。
有人有此功能的一个例子吗?
$myMap ={}
$myMap.put("mykey1", "myvalue")
$myMap.delete("mykey1")
$myMap.getValue("mykey1")
我有一些问题を使用键 - 值映射到速度。
有人有此功能的一个例子吗?
$myMap ={}
$myMap.put("mykey1", "myvalue")
$myMap.delete("mykey1")
$myMap.getValue("mykey1")
正如森说,你应该使用:
#set ($myMap = {})
创建一个新的地图,并将其分配给一个变量。
现在,为什么是put
打印通话。
任何不是一个指令内,像#set(not printed)
或#if(not printed)
或#foreach(again not printed)
,打印,包括自由文本,变量和方法调用 。
速度不能区分$myMap.get('mykey')
和$myMap.put('key', 'value')
所以结果put
被打印的呼叫。
每当有什么事情不能被正确评估,因为沿着方法返回线变量没有定义或某处null
,未能进行评估代码字面上倒入输出。
由于的文档put
方法州,该函数返回存储该密钥的前值,或null
,如果没有设置值的。
总结这一切,这是正常获得该行打印。
要走出试试这个理论,你可以这样做:
#set ($myMap = {})
$myMap.put('key', 'first value')
$myMap.put('key', 'second value')
$myMap.get('key')
这将被打印:
$myMap.put('key', 'first value')
first value
second value
有两件事情可以做,使线不打印:
存储功能的结果,在一个临时变量: #set ($discard = $myMap.put('key', 'value')
用无声的方法调用: $!myMap.put('key', 'value')
我建议你的第一个,因为第二个仍然会打印的东西,当你替换现有的值。
你有没有尝试这样做:
#set( $myMap = {} )
此外,请确保您使用的是速度的现代版。 古代那些没有在VTL地图语法。