【Ruby】コードの善し悪し
『初めてのRuby』を熟読してきて、他の人のアルゴリズムのソースとかも観るようになったわけだけど、ある程度Rubyのコードとしての善し悪しがわかるようになってきた。
例えば、バブルソートを書いてみようと思って、googleで検索してみると上位何件かコードが出てくる。そのうち、明らかにおかしなコード(通称ウンコード)として思うのは。
・値の入れ替えにわざわざ一時的な変数を使っててクドイ。
tmp = arr[1]
arr[1] = arr[2]
arr[2] = tmp
これでいける。視覚的にもわかりやすい。
arr[1], arr[2] = arr[2], arr[1]
・for分使ってる
rubyでfor分使うメリットてほとんどなくて、実際のところ、
array[].each do |i|
end
この構文で行ける。というかfor分自体、裏で.eachのメソッドを呼んでるだけ
個人的にはここのコードが好き。
素晴らしくわかりやすい。
また、ベンチマークとりながらどのコードが早いのか、調べてみよう。