Значения параметров по умолчанию
Часть раздела Основы путешествия по 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Шпаргалка
Значения параметров по умолчанию предоставляют резервные значения, когда аргументы не переданы. Используйте знак = после имени параметра, чтобы установить значение по умолчанию:
def greet(name = "friend")
puts "Hello, #{name}!"
end
greet("Alice") # Выводит: Hello, Alice!
greet # Выводит: Hello, friend!Параметры со значениями по умолчанию должны идти после параметров без значений по умолчанию:
def power(base, exponent = 2)
base ** exponent
end
puts power(5) # Выводит: 25 (5 в квадрате)
puts power(2, 3) # Выводит: 8 (2 в кубе)Попробуйте сами
# Считать ввод
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Значения параметров по умолчанию