gpt4 book ai didi

Jenkins 将 true 分配给 bool 变量并将 false 分配给 def 变量

转载 作者:行者123 更新时间:2023-12-01 03:15:55 24 4
gpt4 key购买 nike

非常简单直接的问题:

假设我们有这个管道(我认为没有更简单的例子):

node {
env.someEnvVariable = false

boolean asBoolean = env.someEnvVariable ?: false
def asDef = env.someEnvVariable ?: false

echo "asBoolean: $asBoolean" // prints true because of Jenkins
echo "asDef: $asDef" // prints false
}

为什么????

将变量定义为 boolean让 Jenkins 为其分配一个真值,但将其定义为 def分配给它真正的假值

将 Jenkins 带到哪里 true值(value)从?

编辑:另一个例子:
node {
env.someEnvVariable = false
boolean someBoolean = false
def someVar = false

echo "envVar: ${env.someEnvVariable}" // prints false
echo "someBoolean: ${someBoolean}" // prints false
echo "someVar: ${someVar}" // prints false
if (env.someEnvVariable != null) {
someBoolean = env.someEnvVariable
someVar = env.someEnvVariable
}
echo "envVar: ${env.someEnvVariable}" // prints false
echo "someBoolean: ${someBoolean}" // prints true because of hack
echo "someVar: ${someVar}" // prints false
}

最佳答案

我的假设是,当您分配环境变量时,它被解释为字符串 'false' .这意味着在这两种情况下,您都尝试分配一个字符串,但将字符串分配给 boolean如果变量不为空,则变量被解释为真。

三元运算符的工作方式相同,您检查环境变量是否为真(非空)。它不是这样返回变量本身的。

关于 Jenkins 将 true 分配给 bool 变量并将 false 分配给 def 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48707919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com