Ruby调用函数,带有多个参数

时间:2015-11-05 20:59:39

标签: ruby function loops

我有一个函数正在使用的参数数组,数组的长度可以改变。

我想用该数组的参数数量来调用该函数,我该如何在ruby中执行此操作。

数组可能有很多参数,因此某种if / case语句不起作用。

array = ["one","two","tree","four", "five"]

def callFunction(a)
    callAnotherFunction(a[0],a[1],a[2],a[3],a[4])
end

我想使用某种循环来发送正确数量的参数。 应使用数组具有的参数数量调用callAnotherFunction函数。数组将始终具有正确数量的参数。

2 个答案:

答案 0 :(得分:2)

您可以使用splat运算符。

def callFunction(a)
  callAnotherFunction(*a)
end

请参阅:http://ruby-doc.org/core-2.1.3/doc/syntax/calling_methods_rdoc.html

答案 1 :(得分:0)

def add(*arr)    # The * slurps multiple arguments into one array
  p arr          # => [1, 2, 3]
  arr.inject(:+)
end

p add(1,2,3)     # => 6

def starts_with_any_of(str, arr)
  str.start_with?(*arr)  # start_with? does not take an array, it needs one or more strings
                         # the * works in reverse here: it splats an array into multiple arguments
end

p starts_with_any_of("demonstration", ["pre", "post", "demo"])  # => true