Menu
Coddy logo textTech

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

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

Шпаргалка

Значения параметров по умолчанию предоставляют резервные значения, когда аргументы не переданы. Используйте знак = после имени параметра, чтобы установить значение по умолчанию:

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
quiz iconПроверьте себя

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

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