如何否定 groovy 中的变量
How to negate a variable in groovy
我正在尝试使用 groovy 脚本来否定变量,但使用 (!) 它似乎不起作用,变量是从 jenkins 控件传递的 运行 a groovy 构建流程:
def P = "arg"
def resolver = build.buildVariableResolver
def V = resolver.resolve(P)
print "V is " + V
print "negated V is " + !V
在两张图片中我得到了相同的值!!
使用 Java 的 Boolean.valueOf()
或 Groovy 的 String.toBoolean()
从字符串中获取适当的布尔值,即 true
或 false
.
def mybool = "false"
def v = Boolean.valueOf(mybool)
println "v=" + v
// => v=false
println "!v=" + !v
// => !v=true
String.toBoolean()
更灵活,允许范围更广的 "truthy" 个字符串(true
、y
、1
,全部修剪和忽略大小写)。
def b = "False"
def v = b.toBoolean()
println "v=" + v
// => v=false
println "!v=" + !v
// => !v=true
虽然这些是解决问题的方法,但由于隐式转换,原始代码的行为与原来的一样。 !"false"
是 false
(布尔值),因为 "false"
是 groovy 标准 true
(非空字符串)。
我正在尝试使用 groovy 脚本来否定变量,但使用 (!) 它似乎不起作用,变量是从 jenkins 控件传递的 运行 a groovy 构建流程:
def P = "arg"
def resolver = build.buildVariableResolver
def V = resolver.resolve(P)
print "V is " + V
print "negated V is " + !V
在两张图片中我得到了相同的值!!
使用 Java 的 Boolean.valueOf()
或 Groovy 的 String.toBoolean()
从字符串中获取适当的布尔值,即 true
或 false
.
def mybool = "false"
def v = Boolean.valueOf(mybool)
println "v=" + v
// => v=false
println "!v=" + !v
// => !v=true
String.toBoolean()
更灵活,允许范围更广的 "truthy" 个字符串(true
、y
、1
,全部修剪和忽略大小写)。
def b = "False"
def v = b.toBoolean()
println "v=" + v
// => v=false
println "!v=" + !v
// => !v=true
虽然这些是解决问题的方法,但由于隐式转换,原始代码的行为与原来的一样。 !"false"
是 false
(布尔值),因为 "false"
是 groovy 标准 true
(非空字符串)。