对于Groovy,我可以在字符串中嵌入布尔值吗?

对于Groovy,我可以在字符串中嵌入布尔值吗?,groovy,jenkins-groovy,Groovy,Jenkins Groovy,例如,字符串“PRESERVE_CLUSTER=${!params.DELETE_CLUSTER_ON_ERROR}./run functional tests.sh”有效吗?是的,它完全有效 您应该注意依赖于区域设置或其他复杂数据类型的toString()-gotchas。 Groovy不会变魔术,而是使用每个对象的toString()方法。不过,对于布尔型,没有什么可担心的。只是对布尔型和字符串处理的一些补充。非空字符串的计算结果始终为true,因此!“真”和!“false”都计算为fals

例如,字符串
“PRESERVE_CLUSTER=${!params.DELETE_CLUSTER_ON_ERROR}./run functional tests.sh”
有效吗?

是的,它完全有效

您应该注意依赖于区域设置或其他复杂数据类型的toString()-gotchas。
Groovy不会变魔术,而是使用每个对象的
toString()
方法。不过,对于布尔型,没有什么可担心的。

只是对布尔型和字符串处理的一些补充。非空字符串的计算结果始终为true,因此
!“真”
!“false”
都计算为false。相反,您可以考虑使用ToBooLoAln()的更安全的版本,对布尔变量和字符串变量都很好。

false_bool = false
false_str = "false"
assert "${!false_bool}" == "true"
//assert "${!false_str}" == "true"   // this will fail

// use toBoolean() is safer
assert "${!false_bool.toBoolean()}" == "true"
assert "${!false_str.toBoolean()}" == "true"