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

原谅我刚开始的问题,但假设我有一个数组:

a = [1,2,3]

还有一个函数我们假设它是一个实例函数:

class Ilike
def turtles(*args)
puts args.inspect
end
end

如何使用 a调用 Ilike.turtles,就像调用 (Ilike.new).turtles(1,2,3)一样。

我熟悉 send,但是它似乎不能将数组转换为参数列表。

与我所寻找的类似的是 Javascript apply,它等价于 call,但是将数组转换为参数列表。

25335 次浏览

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

Ilike.new.turtles(*a)