如何否定groovy中的变量

时间:2015-01-21 16:37:01

标签: groovy jenkins

我试图使用groovy脚本来否定变量,但它似乎无法使用(!),变量从运行groovy构建流程的jenkins控件传递:

def P = "arg"
def resolver = build.buildVariableResolver
def V = resolver.resolve(P)
 print "V is " + V
 print "negated V is " + !V
两张照片中的

我得到相同的价值!!

1 个答案:

答案 0 :(得分:4)

使用Java的Boolean.valueOf()或Groovy的String.toBoolean()从字符串中获取正确的布尔值,该值为truefalse

def mybool = "false"
def v = Boolean.valueOf(mybool)
println "v=" + v
// => v=false
println "!v=" + !v
// => !v=true

String.toBoolean()更加灵活,允许更广泛的“真实”字符串(truey1,所有字符串都被修剪,并且忽略了大小写。

def b = "False"
def v = b.toBoolean()
println "v=" + v
// => v=false
println "!v=" + !v
// => !v=true

虽然这些是问题的补救措施,但原始代码的表现与它所做的一样,因为有一个隐含的强制转换。 !"false"false(布尔值),因为"false"是groovy标准true(非空字符串)。