Учитывая массив аргументов, как отправить эти аргументы в определенную функцию в 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)