Menu
CoddyTech

Значения параметров по умолчанию

Часть раздела Основы путешествия по 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 в кубе)

Это делает методы более гибкими. Вызывающие код могут передать только необходимые сведения, а для необязательных деталей будут использоваться разумные значения по умолчанию.

challenge icon

Задание

Легко

Определите метод с именем multiply, который принимает два параметра: a и b. У параметра b должно быть значение по умолчанию 1. Метод должен возвращать произведение a и b.

Прочитайте из входных данных два целых числа:

  1. Первое число (оно будет предоставлено всегда)
  2. Второе число (оно может быть предоставлено, а может и нет)

Если предоставлено только одно входное значение, вызовите метод только с этим аргументом (используя значение по умолчанию для 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
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Ruby