サーチ…


シーケンスとしての範囲

範囲の最も重要な使用は、配列を表現することです

構文:

(begin..end) => this construct will include end value
(begin...end) => this construct will exclude end value

または

Range.new(begin,end,exclude_end) => exclude_end is by default false

最も重要なend値はbeginよりも大きくなければなりません。そうでなければ何も返しません。

例:

(10..1).to_a            #=> []
(1...3)                 #=> [1, 2]
(-6..-1).to_a           #=> [-6, -5, -4, -3, -2, -1]
('a'..'e').to_a         #=> ["a", "b", "c", "d", "e"]
('a'...'e').to_a        #=> ["a", "b", "c", "d"]
Range.new(1,3).to_a     #=> [1, 2, 3] 
Range.new(1,3,true).to_a#=> [1, 2]

ある範囲で反復する

ある範囲内の各要素に対して何かを簡単に行うことができます。

(1..5).each do |i|
    print i
end
# 12345

日付間の範囲

require 'date'

date1 = Date.parse "01/06/2016"
date2 = Date.parse "05/06/2016"

p "Period #{date1.strftime("%d/%m/%Y")} to #{date2.strftime("%d/%m/%Y")}"

(date1..date2).each do |date|
  p date.strftime("%d/%m/%Y")
end

# "01/06/2016"
# "02/06/2016"
# "03/06/2016"
# "04/06/2016"
# "05/06/2016"


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow