我看到了下面这行
hsb.s = max != 0 ? 255 * delta / max : 0;
做什么?在这种情况下是什么意思?
我看到了下面这行
hsb.s = max != 0 ? 255 * delta / max : 0;
做什么?在这种情况下是什么意思?
当前回答
它被称为条件操作符(这是一个三元操作符)。
它的形式是:condition ?Value-if-true: value-if-false 想想?“then”和“else”。
你的代码相当于
if (max != 0)
hsb.s = 255 * delta / max;
else
hsb.s = 0;
其他回答
? :这不是三元运算符吗?
Var x=表达式?真:假
为了清楚起见,它是
hsb.s = (max != 0) ? (255 * delta / max) : 0;
也就是返回
255*delta/max如果max != 0 如果Max == 0则为0
?:是else{}和if(){}问题的简写条件。 所以你的代码是可以互换的:
if(max != 0){
hsb.s = 225 * delta / max
}
else {
hsb.s = 0
}
MDN -条件(三元)运算符
它被称为条件操作符(这是一个三元操作符)。
它的形式是:condition ?Value-if-true: value-if-false 想想?“then”和“else”。
你的代码相当于
if (max != 0)
hsb.s = 255 * delta / max;
else
hsb.s = 0;
hsb.s = max != 0 ? 255 * delta / max : 0;
? 三元运算符。它的工作原理类似于if和:
=表示不等于
所以这条直线的长形式是
if (max != 0) { //if max is not zero
hsb.s = 255 * delta / max;
} else {
hsb.s = 0;
}