? является тернарным оператором, он работает как a, если в сочетании с:
!= означает, что не равно
Таким образом, длинная форма этой строки будет
if (max != 0) { //if max is not zero
hsb.s = 255 * delta / max;
} else {
hsb.s = 0;
}
Ответ 4
Это, вероятно, немного яснее, если записать с помощью скобок следующим образом:
hsb.s = (max != 0) ? (255 * delta / max) : 0;
Что он делает, это оценить часть в первых скобках. Если результат верен, то часть после? и перед возвратом:. Если оно ложно, то возвращается следующее:.
Ответ 5
? : - это не тернарный оператор?
var x= expression ? true:false
Ответ 6
Будьте осторожны с этим. A -1 оценивает значение true, хотя -1!= True и -1!= False. Поверьте мне, я видел, как это происходит.