Учитывая массив аргументов, как отправить эти аргументы в определенную функцию в Ruby?
Простите новичок, но скажите, что у меня есть массив:
a = [1,2,3]
И функция где-то; скажем, это функция экземпляра:
class Ilike
def turtles(*args)
puts args.inspect
end
end
Как мне вызвать Ilike.turtles
с помощью a
, как если бы я вызывал (Ilike.new).turtles(1,2,3)
.
Я знаком с send
, но это не похоже на перевод массива в список аргументов.
Параллелью того, что я ищу, является Javascript apply
, который эквивалентен call
, но преобразует массив в список аргументов.
Ответы
Ответ 1
Как вы знаете, при определении метода вы можете использовать *
, чтобы превратить список аргументов в массив. Аналогично, когда вы вызываете метод, вы можете использовать *
, чтобы превратить массив в список аргументов. Поэтому в вашем примере вы можете просто:
Ilike.new.turtles(*a)