尝试理解这一行Groovy代码:
return strat?.descriptor?.displayName ?: "null"
?:
是否是速记if / else?这是否意味着strat?.descriptor?.displayName
不为空,打印它,或打印null
?
我感到困惑,因为?
和:
之间没有任何内容,就像我在if / else语句中通常所期望的那样。
答案 0 :(得分:17)
只是为了增加一些洞察力,"?:"运算符称为二元运算符或通常称为elvis运算符。以下代码示例都生成相同的结果,其中x根据Groovy Truth
计算为truefn main() {
let vec_2d = vec![vec![1i32]];
println!("{:?}", vec_2d);
}
点击此处了解有关Elvis Operator
的更多信息答案 1 :(得分:1)
是的,"?:"如果值不为null,则运算符将向左返回值。否则,将值返回到右侧。