***

1118 ワード

Rangeは範囲オブジェクトのクラスです.定義するときは範囲オペレータ「.」を使用できます.あるいは「…」、“..”生成された範囲オブジェクトには、開始点と終了点、「...」が含まれます.生成された範囲オブジェクトには、開始点と終了点は含まれません.範囲は、数値、アルファベット、文字列、時間などのランダムオブジェクトで定義できます.
1、Rangeオブジェクトの定義
r1=1..5 				#      r1,    1,2,3,4,5
r2=Range.new(1,5)		#   1..5
r3=1...5 				#      r3,    2,3,4
r4=Range.new(1,5,true)	#   1...5
、Rangeオブジェクトの使い勝手
r=rand*100
rf=format('%.2f',r)
case r
when 90..100
	puts "  :#{rf}   :  "
when 70..90
	puts "  :#{rf}   :  "
when 50..70
	puts "  :#{rf}   :  "
else
	puts "  :#{rf}   :   "
end
通常、時間の遍歴は非常に面倒なプロセスですが、Rangeがあれば、次のコードの例のように簡単になります.
#  2013-01-01 2013-02-28   ,   Date
begin_date = Date.parse '2013-01-01'  
end_date = Date.parse '2013-02-28'
r1=begin_date .. end_date
r1.each{|date| puts date}
#  abc-xyz     
r2='abc' .. 'xyz'
r2.each{|str| puts str}
#              
r3='a'..'z'
puts r3==='A'		#false
puts r3.include?'k'	#true
puts r3.min 		#a
puts r3.max 		#z
puts r3.first(3) 	#a,b,c
puts r3.last(4) 	#w,x,y,z