ちょっと動きがキモイ。
map = {"a" => "1" , "b" => "2" , "c" => "3"} p map.sort #=> [["a", 1], ["b", 2], ["c", 3]]
ソートすると、キーと値の配列の配列をソートした結果が出力される。
Hash は Enumerable をインクルードしているので、each を実装すれば勝手に sort も付いてくる。each を呼び出すと
map.each{|k,v| puts k,v } #=>a #=>1 #=>b #=>2 #=>c #=>3
引数が(?)一つだと
map.each{|v| p v } #=>["a", 1] #=>["b", 2] #=>["c", 3]
配列で入ってくる。sort で呼び出した後に配列の配列になってるのは何となく分かる。
each の引数(?) が一つの場合は配列で、複数定義したらそれぞれに入るのは言語の決まりで、sort で配列の一つ目を使うのは Enumeable がやってるのかな??