You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy如何遍历列表中的版本号?Jenkinsfile场景实现求助

你的代码判断不生效的核心原因有两个:

  • Groovy 单引号字符串不支持变量插值,你用'${A}'、'C[i]'写法得到的是固定的字面量字符串,不会读取变量实际值,所以判断条件永远为假。
  • 变量类型不统一,你定义的列表C存的是字符串类型的数值,直接写A=1.1得到的是数字类型,跨类型对比也会导致判断失败。

修正后符合需求的完整代码

def C = ['1.1', '1.2', '1.3']
// 统一变量为字符串类型,和C中元素类型保持一致
String A = '1.1'
String B = '1.3'

if (A == B) {
    println "No Action needed"
} else {
    println "not equal"
    // 遍历列表C,Groovy支持直接用in遍历元素,比下标写法更简洁
    for (currentItem in C) {
        println currentItem
        if (currentItem == '1.2') {
            println "still need iteration"
        }
        if (currentItem == B) {
            println "Matched"
            // 匹配成功后可直接跳出循环,无需继续遍历
            break
        }
    }
}

如果你还是想用原来的下标遍历写法,只要修改判断部分的写法即可:

// 原下标遍历写法修正后
for (i = 0; i < C.size(); i++) {
    println C[i]
    if (C[i] == '1.2') {
        println "still need iteration"
    }
    // 去掉变量外层的多余单引号,直接读取变量值对比
    if (C[i] == B) {
        println "Matched"
        break
    }
}

内容的提问来源于stack exchange,提问作者user2995458

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:24:05