3

一次将一个参数传递给解析器方法是可行的。不止一个,它会产生“语法错误,意外',',期待')'(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
4

1 回答 1

5

这是括号前的空间。去掉它。它没有将array_1andarray_2视为 args,而是将其视为带括号的表达式(整个表达式为一个 arg)并抱怨逗号。您的代码应如下所示

parser(array_1, array_2)

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

于 2013-03-18T23:35:53.210 回答