与えられた
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
。