什么是"?:"在Groovy中使用的运算符?

时间:2016-01-04 17:32:19

标签: groovy

尝试理解这一行Groovy代码:

return strat?.descriptor?.displayName ?: "null"

?:是否是速记if / else?这是否意味着strat?.descriptor?.displayName不为空,打印它,或打印null

我感到困惑,因为?:之间没有任何内容,就像我在if / else语句中通常所期望的那样。

2 个答案:

答案 0 :(得分:17)

只是为了增加一些洞察力,"?:"运算符称为二元运算符或通常称为elvis运算符。以下代码示例都生成相同的结果,其中x根据Groovy Truth

计算为true
fn main() {
    let vec_2d = vec![vec![1i32]];

    println!("{:?}", vec_2d);
}

点击此处了解有关Elvis Operator

的更多信息

答案 1 :(得分:1)

是的,"?:"如果值不为null,则运算符将向左返回值。否则,将值返回到右侧。