如何将多个参数传递给Ruby方法

时间:2013-03-18 23:32:36

标签: ruby

一次将一个参数传递给解析器方法。 不止一个,它会生成“语法错误,意外',',期待')'(SyntaxError)”

$array = []
array_1 = %w(tuna salmon herring)
array_2 = %w(crow owl eagle dove)

def parser (*argument)
  argument.each do |item|
    $array << item
  end
end

parser (array_1, array_2) # taking multiple arguments generates error
$array.flatten!
puts $array

1 个答案:

答案 0 :(得分:5)

这是parens之前的空间。去掉它。它不是将array_1array_2视为args,而是将其视为带括号的表达式(整个表达式为一个arg)并抱怨逗号。您的代码应该是

parser(array_1, array_2)

顺便说一句,Ruby 1.8.7似乎只是在行为正确之前发出警告。