Значения параметров по умолчанию
Часть раздела Основы путешествия по Ruby на Coddy. Урок 53 из 88.
Иногда вам нужно, чтобы у метода было разумное значение по умолчанию, если аргумент не указан. Значения параметров по умолчанию позволяют определить, каким должно быть значение параметра, если вызывающий код его не задаёт.
Чтобы задать значение по умолчанию, используйте знак = после имени параметра:
def greet(name = "friend")
puts "Hello, #{name}!"
end
greet("Alice") # Выводит: Hello, Alice!
greet # Выводит: Hello, friend!Когда вы вызываете greet без аргумента, Ruby использует "friend" по умолчанию. Если вы передаёте аргумент, он заменяет значение по умолчанию.
Можно сочетать обычные параметры с параметрами по умолчанию. Параметры со значениями по умолчанию обычно идут после параметров без них, а обычный параметр не может находиться между двумя параметрами со значениями по умолчанию:
def power(base, exponent = 2)
base ** exponent
end
puts power(5) # Выводит: 25 (5 в квадрате)
puts power(2, 3) # Выводит: 8 (2 в кубе)Это делает методы более гибкими. Вызывающие код могут передать только необходимые сведения, а для необязательных деталей будут использоваться разумные значения по умолчанию.
Задание
ЛегкоОпределите метод с именем multiply, который принимает два параметра: a и b. У параметра b должно быть значение по умолчанию 1. Метод должен возвращать произведение a и b.
Прочитайте из входных данных два целых числа:
- Первое число (оно будет предоставлено всегда)
- Второе число (оно может быть предоставлено, а может и нет)
Если предоставлено только одно входное значение, вызовите метод только с этим аргументом (используя значение по умолчанию для b). Если предоставлены два входных значения, вызовите метод с обоими аргументами.
Выведите результат вызова метода.
Формат входных данных:
- Первая строка: первое число
- Вторая строка: число или слово
none
Например, если входные данные — 7 и 3:
21Если входные данные — 5 и none:
5Если входные данные — 12 и 4:
48Попробуйте сами
# Считайте входные данные
a = gets.chomp.to_i
b_input = gets.chomp
# TODO: Определите метод multiply с параметром b, значение которого по умолчанию равно 1
# TODO: Вызовите метод в зависимости от того, содержит ли b_input "none" или число
# Если b_input содержит "none", вызовите multiply только с аргументом a
# Если b_input содержит число, вызовите multiply с аргументами a и b
# Выведите результат
puts resultВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Продвинутая работа с массивами
Срезы массивов через диапазоныСрезы массивов через индексыОператоры массивовМетод include?2Переменные и типы данных
Числа и переменныеСтроковый тип данныхЛогический тип данныхТип данных SymbolПроверка типов данныхПравила именованияПовторение: создание переменных5Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторВложенные конструкции If - ElseОператор Unless8Циклы
Цикл For с диапазонамиЦикл WhileОператор BreakОператор NextПовторение: ФакториалЦикл TimesЦикл UntilВложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод с помощью putsВывод с помощью print и pВывод с переменнымиВвод с помощью getsМетод chompПреобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложь9Методы
Определение методаПараметры методаВозвращаемые значенияПовторение: метод SigmaПовторение: метод ValidationЗначения параметров по умолчаниюПотренируйтесь самостоятельно: Онлайн-компилятор Ruby