行列を素早く作るにはEnumeratorをmapする

 技術記事の棚卸をしていて,こちらの記事で勉強していたのですが,
[Ruby] 10行で書ける Dijkstra 法 | singular point


 行列を作る手段としてこちらが使われていました。

n=6
g=n.times.collect{ Array.new(n,-1)}

collectメソッドを使い慣れていなくて(ずっとmap),一瞬なんだかわからなかったのですが,これは

pry(main)> g = n.times.map{ Array.new(n, -1) }
#=> [[-1, -1, -1, -1, -1, -1],
# [-1, -1, -1, -1, -1, -1],
# [-1, -1, -1, -1, -1, -1],
# [-1, -1, -1, -1, -1, -1],
# [-1, -1, -1, -1, -1, -1],
# [-1, -1, -1, -1, -1, -1]]

と同じコードです.timesメソッドがEnumeratorを返すのでこれをmapすることで配列の配列を生成しているんですね.
Class: Integer (Ruby 1.9.3)