Тернарный оператор
Часть раздела Логика и управление потоком путешествия по Ruby на Coddy. Урок 40 из 56.
Оператор ternary — это однострочное сокращение для if/else, которое возвращает значение. Синтаксис: condition ? value_if_true : value_if_false.
age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status # EligibleЭто то же самое, что написать:
status = if age >= 18
"Eligible"
else
"Not Eligible"
endИспользуй ternary, когда обе ветви возвращают короткие значения. Если какой-либо ветви требуется больше одного выражения, вернись к настоящему if/else: если запихнуть в ternary слишком много, его будет трудно читать.
Вы можете использовать его непосредственно внутри других выражений, включая интерполяцию:
count = 1
puts "#{count} item#{count == 1 ? "" : "s"}" # 1 элемент
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}" # 5 элементовЗадание
ЛегкоПрочитайте целое число n из ввода. Используя тернарный оператор (без блоков if/else), выведите в точности:
<n> is <label>где label имеет значение:
positive, когдаn > 0negative, когдаn < 0zero, когдаn == 0
Подсказка: используйте вложенный тернарный оператор: condition ? a : (other_condition ? b : c).
Для ввода 5 результатом будет 5 is positive. Для 0 результатом будет 0 is zero.
Попробуйте сами
n = gets.to_i
# TODO: используй тернарное выражение, чтобы построить метку, затем puts
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки: подробный разбор
Обзор методов строкИнтерполяция строкПеребор строкРазделение и объединениеПовторение — String Weaver4Блоки, Proc и Lambda
Что такое блок?do..end и фигурные скобкиКлючевое слово yieldПараметры блокаProc и LambdaПовторение — пользовательский итератор7Хэши, часть 2
Hash.new со значениями по умолчаниюПеребор хэшейВложенные хэшиОбъединение и преобразованиеПовторение — счётчик частот10Проект — Учёт студентов
Обзор проектаДобавление студента2Диапазоны
Что такое диапазон?Методы диапазоновДиапазоны в Case / WhenПовторение — практика с диапазонами5Мощь Enumerable
Select и RejectЦепочка вызовов mapReduce / Injectcount, all?, any?, none?group_by и partitionsort_by, min_by, max_byПовторение — конвейер данных8Продвинутый выбор решений
Case с классами и Regexwhen с несколькими значениямиТернарный операторСтрочные if / unlessПовторение — классификатор оценок3Двумерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваПеребор двумерных массивовРаспространённые шаблоны для двумерных массивовПовторение — операции с матрицами6Проект — Менеджер библиотеки
Обзор проектаДобавление книгиПотренируйтесь самостоятельно: Онлайн-компилятор Ruby