对每个变量使用a返回def列表大小

时间:2018-07-17 16:05:39

标签: groovy foreach

我正在使用一个包含字符串键和列表值的映射。当为每个循环使用a时,我无法使用我的字符串变量来拉列表的大小(注释掉的行)。我的输出如下:

  

任务:nametest
  开始测试
  3
  NA
  海
  欧元

最终,我的目标是嵌套循环以打印我每个列表中的所有DC。

    task nametest << {
    def dcMap = [:];
    def naDCs = ["10", "20", "30"];
    def seaDCs = ["40", "50", "60", "70"]
    def eurDCs = ["80", "90", "100", "110", "120"]
    dcMap << ['NA':naDCs];
    dcMap << ['SEA':seaDCs];
    dcMap << ['EUR':eurDCs];
    println "starting test";
    println dcMap.NA.size();
    def dcMapKeys = dcMap.keySet();
    for (def reg : dcMapKeys){
        println reg;
        //println dcMap.reg.size();
    }
}

1 个答案:

答案 0 :(得分:1)

因此,您的dcMap.reg.size()代码尝试获取与“ reg” String对应的值,而不是def reg variable的值。

您可以按照以下几种方法获得预期的输出:

1. println dcMap[reg].size(); 
2. println dcMap."${reg}".size();
3. println dcMap.get(reg).size();

使用以上任何选项。