这个函数应该有两个参数,但是包含的字符我不明白它们的含义。 “?”的价值是多少?这个函数中的两个参数是什么,我知道panel.id就是其中之一。任何能够解释它们的库的链接?谢谢
setPanelType(panel.id, ((encType) ? PANEL_ST_ENC : PANEL_NORMAL))
此处发布的重复问题可能是在解释什么是“?”运营商是。但是我不确定它是否在函数参数调用中使用不同。这个问题与任何问题都不重复。
答案 0 :(得分:3)
你已经遇到了一个名为“conditional operator”*的东西。这基本上是编写if语句的简短方法。
例如:
String var;
var = 1 > 0 ? "It's bigger than 0" : "It's 0 or smaller";
与:
相同String var;
if(1 > 0){
var = "It's bigger than 0";
}else{
var = "It's 0 or smaller";
}
*它有时也称为“三元”运算符,但这并不完全正确。它是 “三元运算符”(接受三个操作数的运算符,就像乘法运算符*
是二进制运算符一样,因为它接受两个操作数),但理论上可能还有其他操作数。事实上,我认为它是Java或JavaScript中唯一的三元运算符(至少目前为止)。
答案 1 :(得分:0)
答案 2 :(得分:0)
'?'表示如上所述的三元运算符,encType是一个布尔变量。
setPanelType(panel.id, ((encType) ? PANEL_ST_ENC : PANEL_NORMAL))
等于:
if (encType)
setPanelType(panel.id, PANEL_ST_ENC))
else
setPanelType(panel.id, PANEL_NORMAL))