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
相关产品推荐
相关产品推荐

