与えられた
a = [[:a, :b, :c]]
1) 私はこれを理解しています
a.each{|(x, y), z| p z} # => :b
(x, y)との 2 つの変数があるzため、3 番目の要素:cは破棄され、 とz一致し:bます。そして、私はこれを理解しています
a.each{|(x, y), z| p y} # => nil
これは に(x, y)一致:aし、これは配列ではないため要素がないため、 にy一致しnilます。
しかし、どのように
a.each{|(x, y), z| p x} # => :a
仕事?nil返されることを期待しています。
2) 戻り値がこのようになるのはなぜですか?
a.each{|(x, y)| p x} #=> :a
a.each{|(x, y)| p y} #=> :b
両方とも戻ってくると思いますnil。