6

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

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

有人可以发布语法示例吗?

4

2 回答 2

9

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

<myMap.keys:{k | <k> maps to <myMap.(k)>}; separator="\n">

印刷:

Jake maps to Dog
Finn maps to Human
于 2015-08-26T08:20:57.083 回答
0

样本输入:

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
于 2021-02-05T03:00:29.930 回答