naruseです。 Toshiyuki Ogura さんは書きました: > hash = {"x" => 1, "y" => 0, "z" => 2} > p hash.sort{|a,b| > a[1] <=> b[1] > } > > というコードを実行すると、 > [["y", 0], ["x", 1], ["z", 2]] > という結果になりますが、a, bは何を指しているのでしょうか。 hash をソートする際は、hash を一度 array に変換しています。 {"x" => 1, "y" => 0, "z" => 2} でしたら、 [["x", 1], ["y", 0], ["z", 2]] のような array に。 これへの sort と同じ事が起きます。 > また、ハッシュでなく配列に対してsort{|a,b| ... }したときは、a,bは何を指 > すのでしょうか。 array の sort の場合は、配列の要素の並び替えになります。 なので、a, b には配列のある要素が入ります。 [1, 2, 3, 4, 5] のような array ならば、 1 か 2 か 3 か 4 か 5 が、 [["x", 1], ["y", 0], ["z", 2]] のような array ならば、 ["x", 1] か ["y", 0] か ["z", 2] が入ります。 > 配列の場合の簡単なコードの例も知りたいのですが、どこで見られますでしょう > か。 マニュアルー・・・にはないんですね。 http://www.namaraii.com/rubytips/?%C7%DB%CE%F3#l14 逆引きRuby あたりでどうでしょう。 -- NARUSE, Yui <naruse / airemix.com> DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA