【发布时间】:2015-08-25 19:54:07
【问题描述】:
在 StringTemplate 4 中,迭代的默认行为是迭代 keys 而不是 values,这是版本 3 中的行为。
对于版本 4,我找不到如何同时迭代 keys 和 values 的语法。
有人可以发布语法示例吗?
【问题讨论】:
标签: stringtemplate stringtemplate-4
在 StringTemplate 4 中,迭代的默认行为是迭代 keys 而不是 values,这是版本 3 中的行为。
对于版本 4,我找不到如何同时迭代 keys 和 values 的语法。
有人可以发布语法示例吗?
【问题讨论】:
标签: stringtemplate stringtemplate-4
您可以使用间接属性引用来获取当前迭代中键的值。这是你的意思吗?
<myMap.keys:{k | <k> maps to <myMap.(k)>}; separator="\n">
打印:
Jake maps to Dog
Finn maps to Human
【讨论】:
示例输入:
List<String> myList = new ArrayList<>();
myList.add("k1");
myList.add("k2");
myList.add("k3");
Map<String,String> myMap = new HashMap<>();
myMap.put("k1", "v1");
myMap.put("k2", "v2");
myMap.put("k3", "v3");
以随机顺序打印键值对。
$myMap.keys:{key | $key$ maps to $myMap.(key)$ }; separator="\n"$
输出:(随机顺序)
k3 maps to v3
k1 maps to v1
k2 maps to v2
按列表定义的顺序打印键值对。
$myList:{item | $item$ maps to $myMap.(item)$ }; separator="\n"$
输出:(有序)
k1 maps to v1
k2 maps to v2
k3 maps to v3
【讨论】: