我需要用groovy中的所有precedent键来迭代这个Map,我需要在Jenkins中运行它。
a={b={c=1,d=2,e=3},r={p=4},q=5}
我想像下面的输出和输入是动态的,格式可能会有所不同。请帮助我,因为我正在努力。
a:b:c=1 a:b:d=2 a:b:e=3 a:r:p=4 a:q=5
h43kikqp1#
你可以使用一个递归函数来实现这个结果,下面是一个例子:
def iterateMap(Map map, String prefix = "") { map.each { key, value -> if (value instanceof Map) { iterateMap(value, "$prefix$key:") } else { println "a:$prefix$key=$value" } } } def a = [ b: [ c: 1, d: 2, e: 3 ], r: [ p: 4 ], q: 5 ] iterateMap(a)
在这段代码中,iterateMap函数接受一个map作为输入,并接受一个可选的前缀字符串(初始化为空字符串)。它迭代Map中的每个键值对。如果该值本身是一个map,则该函数将使用嵌套的map和更新后的前缀(“$prefix$key:“)递归地调用自身。如果值不是一个Map,它将以所需的格式(“$prefix$key=$value”)打印键值对。
1条答案
按热度按时间h43kikqp1#
你可以使用一个递归函数来实现这个结果,下面是一个例子:
在这段代码中,iterateMap函数接受一个map作为输入,并接受一个可选的前缀字符串(初始化为空字符串)。它迭代Map中的每个键值对。如果该值本身是一个map,则该函数将使用嵌套的map和更新后的前缀(“$prefix$key:“)递归地调用自身。如果值不是一个Map,它将以所需的格式(“$prefix$key=$value”)打印键值对。