Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Rangeクラス > ===

instance method Range#===

self === obj -> bool[permalink][rdoc]
include?(obj) -> bool
member?(obj) -> bool

obj が範囲内に含まれている時に真を返します。

Range#=== は主に case 式での比較に用いられます。

include? が、Enumerable#include?,Enumerable#member? と異なり <=> メソッドによる演算により範囲内かどうかを判定することに注意する必要があります。

[PARAM] obj:
比較対象のオブジェクトを指定します。
p (0.1 .. 0.2).include?(0.15) # => true
# 1.8.1 以前
p (0.1 .. 0.2).member?(0.15)  # => cannot iterate from Float (TypeError)
# 1.8.2 以降
p (0.1 .. 0.2).member?(0.15)  # => true

# 文字列の場合、include? は辞書順の比較になる
p ("a" .. "c").include?("ba") # => true
# 1.8.1 以前
p ("a" .. "c").member?("ba")  # => false
# 1.8.2 以降
p ("a" .. "c").member?("ba")  # => true
# 1.9.1 以降
p ("a" .. "c").include?("ba") # => false
p ("a" .. "c").member?("ba")  # => false

[SEE_ALSO] 制御構造/case