Одна из более забавных вещей обнаружить: курсив и полужирный текст makrup не работают с символами CJK (Chinese/Japanese/Korean). Они просто становятся нечитабельными. (Хорошо, я не мог действительно считать их прежде также, но особенно выделение полужирным просто создает пятна чернил)
Он называется условным оператором (который является тернарным оператором ).
Он имеет форму: условие
? значение-если-истина
: значение-если-ложь
Думайте о ?
как о «то» и :
как о «другом».
Ваш код эквивалентен
if (max != 0)
hsb.s = 255 * delta / max;
else
hsb.s = 0;
Это, вероятно, немного яснее, если записать в скобках следующим образом:
hsb.s = (max != 0) ? (255 * delta / max) : 0;
Он оценивает часть в первых скобках. Если результат верен, то часть после? и до: возвращается. Если это ложь, то возвращается то, что следует за:
Правильно заключено в скобки для ясности, это
hsb.s = (max != 0) ? (255 * delta / max) : 0;
означает возврат либо
255 * delta / max
if max! = 0 0
if max == 0 hsb.s = max! = 0? 255 * дельта / макс: 0;
? является тернарным оператором, он работает как if в сочетании с:
! = означает не равно
Таким образом, длинная форма этой строки будет
if (max != 0) { //if max is not zero
hsb.s = 255 * delta / max;
} else {
hsb.s = 0;
}
? :
разве это не тернарный оператор?
var x = выражение? true: false