Тернарный оператор в Dart
Пусть у нас есть следующий код, проверяющий, есть ли уже
пользователю 18 лет или нет:
var age = 17;
var adult = false;
if (age >= 18) {
adult = true;
} else {
adult = false; // сработает это
}
print(adult); // выведет false
Как вы видите, конструкция if-else нужна только для
того, чтобы записать определенное значение в переменную
adult. Для таких задач, когда у нас в условии
происходит только запись одной переменной, существует более
короткое решение через так называемый тернарный оператор.
Слева пишут переменную, затем условие, знак вопроса, значение при ответе «да», двоеточие и значение при ответе «нет».
Оператор работает так: если условие истинно, то возвращается первое значение, в противном случае - второе. Давайте перепишем приведенный в самом начале урока код через тернарный оператор:
var age = 17;
var adult = age >= 18 ? true : false;
print(adult); // выведет false
Можно не записывать результат в переменную, а сразу вывести его:
var age = 17;
print(age >= 18 ? true : false); // выведет false
Тернарный оператор следует использовать только в самых простых случаях, так как его использование затрудняет понимание кода.
Перепишите следующий код так, чтобы метка сразу записывалась в переменную:
var level = 2;
var tag = "";
if (level >= 3) {
tag = "high";
} else {
tag = "low";
}
print(tag);
Пусть дана переменная num1, которая может быть либо
отрицательной, либо положительной. Запишите в переменную
res число 1, если переменная num1 больше
или равна нулю, и число -1, если переменная num1
меньше нуля.