私は、Ruby 1.9.2-P290を使用していています:私が期待するものではありませんarray.eachの動作がArray.new構文に依存するのはなぜですか?
a = Array.new(2, []).each {|i| i.push("a")}
=> [["a", "a"], ["a", "a"]]
を。しかし、次のコンストラクタスタイルは、私が期待することをします:
b = Array.new(2) {Array.new}.each {|i| i.push("b")}
=> [["b"], ["b"]]
最初の例は期待された動作ですか?
Ruby-docでは、私のsize=2
引数は両方のコンストラクタで同じ種類の引数であるようです。私は、each
メソッドが両方のコンストラクタに対して同じ方法を使用するという引数を渡していると思う。