Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Rangeクラス > cover?
cover?(obj) -> bool
[permalink][rdoc]obj が範囲内に含まれている時に真を返します。
Range#include? と異なり <=> メソッドによる演算により範囲内かどうかを判定します。 Range#include? は原則として離散値を扱い、 Range#cover? は連続値を扱います。 (数値については、例外として Range#include? も連続的に扱います。)
# 数値は連続的に扱われているため、 include? / cover? が同じ結果を返却 (1.1..2.3).include?(1.0) # => false (1.1..2.3).include?(1.1) # => true (1.1..2.3).include?(1.555) # => true (1.1..2.3).cover?(1.0) # => false (1.1..2.3).cover?(1.1) # => true (1.1..2.3).cover?(1.555) # => true # String の例 ('b'..'d').include?('d') # => true ('b'..'d').include?('ba') # => false ('b'..'d').cover?('d') # => true ('b'..'d').cover?('ba') # => true # Date, DateTime の例 (Date.new(2014,1,3)..Date.new(2014,1,5)).include?(Date.new(2014,1,5)) # => true (Time.new(2014,1,3)..Time.new(2014,1,5)).include?(Time.new(2014,1,4,10,10,10)) # => "can't iterate from Time" (Date.new(2014,1,3)..Date.new(2014,1,5)).cover?(Date.new(2014,1,5)) # => true (Time.new(2014,1,3)..Time.new(2014,1,5)).cover?(Time.new(2014,1,4,10,10,10)) # => true
[SEE_ALSO] Range#include?