给定一组参数,如何将这些参数发送到Ruby中的特定函数?

时间:2011-01-10 02:40:53

标签: ruby arrays function arguments

原谅初学者的问题,但是说我有一个数组:

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 个答案:

答案 0 :(得分:121)

如您所知,在定义方法时,可以使用*将参数列表转换为数组。类似地,当您调用方法时,可以使用*将数组转换为参数列表。所以在你的例子中你可以这样做:

Ilike.new.turtles(*a)