#conditional-operator
#условный оператор
Вопрос:
Может понадобиться некоторая помощь в понимании (или помощь с исправлениями), а также объяснение или ссылка на то, откуда вы знаете, чтобы я мог разобраться в этом, когда снова столкнусь с ними. Ни один из учебников, которые я нашел, не был ужасно полезным. Вот операция. Скобка обозначает временной ряд (массив):
a = b==1 ? c ? d : e > a[1] ? e : a[1] : c ? d : a[1]
Переведенный, будет:
a = if b==1 and c then d
else if e > a[1] then e
else a[1]
else if c then d
else a[1]
…правильно? Если правильно, я не понимаю, как else может находиться между двумя else-ifs. Разве цепочка не перестает вычисляться после первого else? Я думал, что else по сути означает «иначе».
Ответ №1:
Я считаю, что выполнение было бы эквивалентно этому вместо b == 1 and c
:
function test() {
if (b==1) {
if (c) {
return d;
} else {
if (e > a[1]) {
return e;
} else {
return a[1];
}
}
} else {
if (c) {
return d;
} else {
return a[1];
}
}
}
a = test();
Комментарии:
1. Спасибо. Какие-либо известные вам учебные пособия могут помочь в будущем?
2. @sgjohnson1981 Вот веб-сайт, который может преобразовывать троичные выражения в if-else: converter.website-dev.eu