Splat-оператор в определениях функций позволяет «сворачивать» аргументы в массив. С его помощью создают функции, которые имеют бесконечное количество параметров:
def sum(*numbers)
numbers.sum
end
# Параметры не обязательны
sum() # 0
sum(1) # 1
sum(1, 10) # 11
sum(1, 10, 8, 1) # 20
Splat-оператор комбинируется с обычными параметрами. Например, если мы
хотим требовать передачи как минимум одного параметра в функцию sum()
,
то для этого достаточно добавить обычный параметр:
def sum(number, *numbers)
number + numbers.sum
end
sum() # ArgumentError
sum(1) # 1
Splat-оператор может встречаться в определении функции только один раз:
# Так не сработает
def sum(*numbers1, *numbers2)
# А так сработает
def sum(*number1, number2)
def sum(number1, number2, *numbers)
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.