3

一度に 1 つの引数をパーサー メソッドに渡すと機能します。複数の場合、「構文エラー、予期しない ','、')' が必要です (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

それは、parensの前のスペースです。それを除く。array_1を引数として扱うarray_2のではなく、括弧で囲まれた式(式全体が1つの引数)として扱い、コンマについて不平を言います。コードは次のようになります

parser(array_1, array_2)

ちなみに、Ruby 1.8.7は、正しく動作する前に、これに関する警告を発するだけのようです。

于 2013-03-18T23:35:53.210 に答える