我正在尝试使用 groovy 脚本否定一个变量,但它似乎无法使用 (!) ,这些变量是从运行 groovy 构建流程的 jenkins 控件传递的:
def P = "arg"
def resolver = build.buildVariableResolver
def V = resolver.resolve(P)
print "V is " + V
print "negated V is " + !V
Run Code Online (Sandbox Code Playgroud)
在两张印刷品中,我得到了相同的价值!!
使用 JavaBoolean.valueOf()或 GroovyString.toBoolean()从字符串中获取正确的布尔值,即true或false。
def mybool = "false"
def v = Boolean.valueOf(mybool)
println "v=" + v
// => v=false
println "!v=" + !v
// => !v=true
Run Code Online (Sandbox Code Playgroud)
String.toBoolean()更灵活,并允许更广泛的“真实”字符串(true, y, 1, 全部修剪并忽略大小写)。
def b = "False"
def v = b.toBoolean()
println "v=" + v
// => v=false
println "!v=" + !v
// => !v=true
Run Code Online (Sandbox Code Playgroud)
虽然这些是问题的补救措施,但由于隐式强制转换,原始代码的行为与它一样。!"false"是false(布尔值),正如"false"groovy 标准true(非空字符串)。
| 归档时间: |
|
| 查看次数: |
6197 次 |
| 最近记录: |