当前位置: 首页 > 面试题库 >

Groovy .each只迭代一次

吴均
2023-03-14
问题内容

该脚本未遍历“模块”数组的所有值。

class Module {
    public String name = '';
    public Boolean isCustom = false;
    public Module(String name, Boolean custom){
        this.name = name;
        this.isCustom = custom;
    }
}

//creates array from the ext_module env var
modules = [];
EXT_MODULE.split(',').each { 
    modules.add(new Module(it, false));
}


println modules;
modules.each {  
    println "MODULE NAME ::::: ${it.name}"
    if(it.isCustom)
    {
        println "install custom";
    } else {
        println "install non custom";
    }
};

这是运行的结果。该数组显示4个元素,但是.each黑色中的代码仅执行一次。

正在运行:打印消息[Module @ 71f09325,Module @ e1ddb41,Module @ 7069a674,Module @
1f68f952]正在
运行:打印消息模块名称::::: puppetlabs-ntp正在
运行:打印消息安装非自定义正在
运行:工作流结束已
完成:成功


问题答案:

消息“正在运行:打印消息”和“正在运行:工作流程结束”表示您正在使用新的工作流程插件:https : //wiki.jenkins-
ci.org/display/JENKINS/Workflow+Plugin
。此插件当前存在一个错误,导致至少一些Groovy迭代(涉及一次关闭)在一次迭代后中止:https : //issues.jenkins-
ci.org/browse/JENKINS-26481



 类似资料:
  • 我一直在读一本面向初学者的书,“第一头HTML5编程”,其中有这样一段代码: 目前,如果我调用,它将返回下一次显示是在下午5:00。我将循环条件更改为“I<=movie.showtimes.length;”但它仍然只运行一次,并且只显示下午5点。循环只迭代一次,即使我重写了这个函数: 不是应该跑两次吗?

  • 如何才能做到这一点呢? 谢谢大家。

  • 这是我的减速器。Reducer具有可边写和可空写功能 EdgeWritable有4个整数,例如<71,74,7,2000>通信在71(FromID)到74(ToID)on 7(7月)2000(Year)之间。 映射器输出10787条记录到reducer,但reducer只输出1条。 我需要输出44个文件与44个月之间的时期从1998年10月至2002年7月。输出的格式应该是“out”+month+

  • 你竟任着刚硬不悔改的心,为自己积蓄忿怒,以致神震怒,显他公义审判的日子来到。他必照各人的行为报应各人。凡恒心行善,寻求荣耀、尊贵和不能朽坏之福的,就以永生报应他们;惟有结党不顺从真理,反顺从不义的,就以忿怒、恼恨报应他们。(ROMANS 2:7-8) 迭代 Bill正在介绍他的项目,嘴里不断蹦出“loop、iterate、traversal、recursion”这些单词,夹杂在汉语汇总。旁边的小白

  • 什么叫做迭代? 比如在 Java 中,我们通过 List 集合的下标来遍历 List 集合中的元素,在 Python 中,给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或 tuple ,这种遍历就是迭代。 可是,Python 的 for 循环抽象程度要高于 Java 的 for 循环的,为什么这么说呢?因为 Python 的 for 循环不仅可以用在 list