院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

rubyのeachやtimesについて

rubyではループ処理にeach,times,upto,downtoなどがある。
forで書けるのに何故あるかについての考え。

これらはforよりも抽象度が低いから直感的に把握しやすくなるのだと思う。
例えば
for(i:0〜n) { array[i]の処理 } = array.each
for(i:0〜n) { n回繰り返し} = n.times

forで書くと処理内容まで見て何をするかを把握するが
eachやtimesだとそれを見ただけで何をしたいかが把握できる。


となるとforを使わないために無理やりeachを使ったりするのは本末転倒な気がする。
たまに見る(0..100).eachとかは読めるけど、違うかなと思いました。

とりあえず、
0.upto(n){|i|} -> for i in 0..n
n.downto(0){|i|} -> for i in n.downto(0)

rangeは降順で指定できないんだよね。
reverse使うのも違うしなー。
う~んびみょいなー。