class Range (Ruby 2.2.0)

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

class Range

クラスの継承リスト: Range < Enumerable < Object < Kernel < BasicObject

要約

範囲オブジェクトのクラス。範囲オブジェクトは範囲演算子 .. または ... によって生成されます。.. 演算子によって生成された範囲 オブジェクトは終端を含み、... 演算子によって生成された範囲オブジェ クトは終端を含みません。

for i in 1..5
   # 処理
end

これは 1 から 5 までの範囲オブジェクトを生成して、それぞれの値に対して 繰り返すと言う意味です。

範囲演算子のオペランドは互いに <=> で比較できる必要があります。 さらに Range#each を実行するためには succ メソッ ドを実行できるものでなければいけません。

破壊的な変更

Ruby の Range クラスは immutable です。 つまり、オブジェクト自体を破壊的に変更することはできません。 ですので、一度生成された Range のオブジェクトの指し示す範囲は 決して変更することはできません。

range = 1..10
range.first     # => 1
range.first = 1 # => NoMethodError

特異メソッド

定義 説明
new(first, last, exclude_end = false) -> Range

first から last までの範囲オブジェクトを生成して返しま す。

インスタンスメソッド

定義 説明
self == other -> bool

指定された other が Range クラスのインスタンスであり、 始点と終点が == メソッドで比較して等しく、Range#exclude_end? が同じ場合に true を返します。そうでない場合に false を返します。

self === obj -> bool
include?(obj) -> bool
member?(obj) -> bool

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

begin -> object
first -> object

始端の要素を返します。範囲オブジェクトが始端を含むかどうかは関係ありま せん。

first(n) -> [object]

最初の n 要素を返します。範囲内に要素が含まれない場合は空の配列を返します。

bsearch {|obj| ... } -> object | nil
bsearch -> Enumerator

ブロックの評価結果で範囲内の各要素の大小判定を行い、条件を満たす値を二 分探索(計算量は O(log n))で検索します。要素が見つからない場合は nil を 返します。

cover?(obj) -> bool

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

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

範囲内の要素に対して繰り返します。

end -> object
last -> object

終端の要素を返します。範囲オブジェクトが終端を含むかどうかは関係ありま せん。

last(n) -> [object]

最後の n 要素を返します。範囲内に要素が含まれない場合は空の配列を返します。

eql?(other) -> bool

指定された other が Range クラスのインスタンスであり、 始点と終点が eql? メソッドで比較して等しく、Range#exclude_end? が同じ場合に true を返します。そうでない場合に false を返します。

exclude_end? -> bool

範囲オブジェクトが終端を含まないとき真を返します。

hash -> Integer

始点と終点のハッシュ値と Range#exclude_end? の値からハッシュ値を計算して整数として返します。

inspect -> String

self を文字列に変換します(始点と終点のオブジェクトは #inspect メソッド で文字列に変換されます)。

max -> object | nil

範囲内の最大の値を返します。

max {|a, b| ... } -> object | nil

ブロックの評価結果で範囲内の各要素の大小判定を行い、最大の要素を返しま す。範囲内に要素が存在しなければ nil を返します。

min -> object | nil

範囲内の最小の値を返します。

min {|a, b| ... } -> object | nil

ブロックの評価結果で範囲内の各要素の大小判定を行い、最小の要素を返しま す。範囲内に要素が存在しなければ nil を返します。

size -> Integer | Float::INFINITY | nil

範囲内の要素数を返します。始端、終端のいずれかのオブジェクトが Numeric のサブクラスのオブジェクトではない場合には nil を返します。

step(s = 1) {|item| ... } -> self
step(s = 1) -> Enumerator

範囲内の要素を s おきに繰り返します。

to_s -> String

self を文字列に変換します(始点と終点のオブジェクトは #to_s メソッドで文 字列に変換されます)。

継承したメソッド

! != __id__ instance_eval instance_exec singleton_method_added singleton_method_removed singleton_method_undefined all? any? chunk collect collect_concat count cycle detect drop drop_while each_cons each_entry each_slice each_with_index each_with_object entries find_all find_index grep group_by inject lazy max_by min_by minmax minmax_by none? one? partition reject reverse_each slice_after slice_before slice_when sort sort_by take take_while to_h to_set zip !~ <=> =~ __send__ _dump class clone define_singleton_method display enum_for equal? extend freeze frozen? initialize initialize_copy instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? itself marshal_dump marshal_load method method_missing methods nil? object_id pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods psych_to_yaml public_method public_methods public_send remove_instance_variable respond_to? respond_to_missing? singleton_class singleton_method singleton_methods taint tainted? tap to_ary to_hash to_int to_io to_proc to_regexp to_str trust untaint untrust untrusted? .yaml_tag ::ARGF ::ARGV ::DATA ::ENV ::FALSE ::NIL ::RUBY_COPYRIGHT ::RUBY_DESCRIPTION ::RUBY_ENGINE ::RUBY_PATCHLEVEL ::RUBY_PLATFORM ::RUBY_RELEASE_DATE ::RUBY_REVISION ::RUBY_VERSION ::SCRIPT_LINES__ ::STDERR ::STDIN ::STDOUT ::TOPLEVEL_BINDING ::TRUE

追加されるメソッド

定義 説明 ライブラリ
json_create(hash) -> Range

JSON のオブジェクトから Ruby のオブジェクトを生成して返します。

json/add/core
to_json(*args) -> String

自身を JSON 形式の文字列に変換して返します。

json/add/core