2008年12月9日火曜日

Ruby でハマッタこと

プライベートでイロイロあって投稿がご無沙汰してきた。
今日、Rubyやっててハマッタことを記録。

irb -Ks にて、

a=%w(1 2 3 4 5)
a.sort {|a, b| b<=>a }
puts a

実行すると、なんと
=>[5, 4, 3, 2, 1]
a=>1

a=1?
配列なのに、なぜ?
a.classするとFixnumになってるし。。。

答えは単純。
配列名とブロック引数名が重複しているためでした。
変数名を変えてやれば正しく動きました。
マイッタ。

0 件のコメント: