三元从句中连续两个问号是什么意思?

最近在一段Java代码中看到了这个三元运算语句:

int getVal(Integer number, boolean required) {
    Integer val = number == null ? required ? 1 : 2 : 3;
    return val;
}

我从未见过像这样连续有两个问号的三元语句(没有任何括号)。如果我使用输入值,我可以1返回 ifnumber == null3返回,但似乎不需要什么,2永远不会返回。

这个语句什么意思(即我应该如何将它读作true/false条件的单词语句)以及需要2返回的输入是什么?

回答

这就是为什么明确添加括号总是一个好主意的原因,因此意图一目了然:

Integer val = number == null ? (required ? 1 : 2) : 3;


回答

它只是一个嵌套的三元语句。添加括号更清楚:

number == null ? (required ? 1 : 2) : 3;

返回 2 需要什么输入?

number = nullrequired = false


以上是三元从句中连续两个问号是什么意思?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>