如何迭代 String Template 4 Map 的键和值?

How can I iterate over the keys and values of a String Template 4 Map?

在 StringTemplate 4 中,迭代的默认行为是迭代 keys 而不是 values,这是版本 3 中的行为。

我找不到如何在版本 4 中同时迭代 keys values 的语法。

有人可以post语法示例吗?

您可以使用间接 属性 引用来获取当前迭代中键的值。这是你的意思吗?

<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