带有值列表的Groovy Switch语句
我想在Jenkins管道作业中使用Switch语句带有值列表的Groovy Switch语句,groovy,jenkins-pipeline,Groovy,Jenkins Pipeline,我想在Jenkins管道作业中使用Switch语句 def version = "1.2" switch(GIT_BRANCH) { case "develop": result = "dev" break case ["master", "support/${version}"]: result = "list" break case "support/${version}": result = "sup" break defau
def version = "1.2"
switch(GIT_BRANCH) {
case "develop":
result = "dev"
break
case ["master", "support/${version}"]:
result = "list"
break
case "support/${version}":
result = "sup"
break
default:
result = "def"
break
}
echo "${result}"
当GIT_分支等于:
develop
-返回值为dev
-正常
master
-返回值为list
-正常
support/1.2
-返回值为sup
-为什么不列表
我猜GIT_分支的类型是字符串
,而“support/${version}”
是GString
。如果将后者转换为字符串
,它应该可以工作:
def version = "1.2"
switch(GIT_BRANCH) {
case "develop":
result = "dev"
break
case ["master", "support/${version}".toString()]:
result = "list"
break
case "support/${version}":
result = "sup"
break
default:
result = "def"
break
}
echo "${result}"
这两种字符串类型之间的差异在相互比较时并不重要,但对其他类型的比较也很重要,例如,在您的代码中,您将GString
与列表的元素进行隐式比较,因此您的问题本质上是“如果多个大小写
s匹配,Groovy开关的行为是什么?”?我想将多个大小写匹配与字符串值和变量混合使用。在我的代码中,变量仅在单大小写匹配中工作,这对我来说不是一个好的解决方案。