我有一个函数正在使用的参数数组,数组的长度可以改变。
我想用该数组的参数数量来调用该函数,我该如何在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函数。数组将始终具有正确数量的参数。
答案 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