我遇到了以下行
hsb.s = max != 0 ? 255 * delta / max : 0;
?
和:
在这种情况下是什么意思?
我遇到了以下行
hsb.s = max != 0 ? 255 * delta / max : 0;
?
和:
在这种情况下是什么意思?
为清楚起见,正确加上括号,它是
hsb.s = (max != 0) ? (255 * delta / max) : 0;
意思是返回
255*delta/max
如果最大值 != 00
如果最大 == 0用括号写成这样可能会更清楚一些,如下所示:
hsb.s = (max != 0) ? (255 * delta / max) : 0;
它的作用是评估第一个括号中的部分。如果结果为真,那么 ? 并且在 : 返回之前。如果为 false,则返回 : 后面的内容。
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;
}
?: 是else {}
和if(){}
问题的简写条件。所以你的代码可以互换:
if(max != 0){
hsb.s = 225 * delta / max
}
else {
hsb.s = 0
}