Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Range | each

概要

Range#each {|item| ... } -> self
Range#each -> Enumerator

詳細

範囲内の要素に対して繰り返します。
Range#each は各要素の succ メソッドを使用してイテレーションする
succ メソッドを持たない場合、エラーになります。

サンプルコード
require 'date'

ret = (1..5).each { |e|print e }
print "\n", (1..5).each, "\n"
ret = ('a'..'e').each { |e|print e }
print "\n", ('a'..'e').each, "\n"
ret = (Date.new(2014,1,4)..Date.new(2014,1,10)).each { |e|print e }
print "\n", (Date.new(2014,1,4)..Date.new(2014,1,10)).each, "\n"

date_range = (Date.new(2014,1,4)..Date.new(2014,1,10))
print date_range.take(5).map(&:to_s), "\n"

出力

12345
#<Enumerator:0x0000060040ec18>
abcde
#<Enumerator:0x0000060040e830>
2014-01-042014-01-052014-01-062014-01-072014-01-082014-01-092014-01-10
#<Enumerator:0x0000060040e290>
["2014-01-04", "2014-01-05", "2014-01-06", "2014-01-07", "2014-01-08"]