読者です 読者をやめる 読者になる 読者になる

Ruby の繰り返しについて、些細なこと

Ruby では繰り返しを

1.upto(10) {|x| puts x}

と書く書き方が好まれますね。また、

(1..10).each {|x| puts x}

という書き方もある。まあ、Ruby に慣れていない人には

for i in 1..10
  puts i
end

の方がわかりやすいと思うので、僕はこっちで書くこともします。でも、

10.downto(1) {|x| puts x}

は、for文と範囲演算子では書けないから、仕方がない。まさか

i = 10
while i > 0
  puts i
  i -= 1
end

とはいくら何でも書けないでしょう(そりゃ動きはするが)。

しかし、ここでも書いたけれど、

(1..10).each(&method(:puts))

はちょっとやり過ぎではないかと思う。僕には読みにくい。でも、慣れている人にはこちらの方がスッキリしているのかも知れないが。

僕のような初心者にはわかりにくいのだが、一見メソッドもブロックもオブジェクトではないけれど、これらもじつはオブジェクトにできると。そのうち簡単に纏めよう。

参考:
instance method Object#method (Ruby 2.2.0)
Rubyでメタプログラミング 〜暗黙的に呼ばれるto_procメソッド - (゚∀゚)o彡 sasata299's blog