如何为方法动态创建参数?

时间:2010-02-09 19:41:39

标签: ruby arrays variables methods arguments

对于Ruby来说还是有些新手,我不知道如何做到这一点......假设我有一个带有可变数量参数的方法:

def mytest(* args)   把args.to_json 端

显然我可以用任何我喜欢的方式来调用它,例如:

mytest('one','two','three')

没问题。但我需要做的是用动态创建的参数集来调用它。例如,我从数据库中提取结果集,我不知道会有多少条目返回。假设我想收集结果id,并用它们调用mytest() - 我将如何构造传递给mytest()的参数集?

这似乎显而易见,但无论出于何种原因,事实并非如此。我意识到我可以改为编写mytest()来获取数组或Hash,但我实际上是在尝试调用一个我没写过的插件中的方法。

1 个答案:

答案 0 :(得分:13)

我不确定我理解你的问题。您是否在询问如何将数组转换为方法的参数?阅读本文

假设你有这个:

a = [1,2,3,4]

和一个采用4个参数的方法,如:

def whatever(p1,p2,p3,p4)
  # do whatever you want with them here
end

你可以这样调用方法:

whatever(*a)

并且数组的元素将按照您希望的方式发送。