Ruby 2.6.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Enumerableモジュール

module Enumerable

クラス・モジュールの継承リスト: Enumerable

要約

繰り返しを行なうクラスのための Mix-in。このモジュールのメソッドは全て each を用いて定義されているので、インクルードするクラスには each が定義されていなければなりません。

Array, Hash, Range, Enumerator等のクラスで、 Enumerableモジュールはインクルードされています。ただし、効率化のため、そのクラスでEnumerableと同名・同等の機能を再定義(オーバーライド)しているケースも少なくなく、特にArrayクラスでは同名のメソッドを再定義していることが多いです。

インスタンスメソッド

定義 説明
all? -> bool
all? {|item| ... } -> bool
all?(pattern) -> bool

すべての要素が真である場合に true を返します。偽である要素があれば、ただちに false を返します。

any? -> bool
any? {|item| ... } -> bool
any?(pattern) -> bool

すべての要素が偽である場合に false を返します。真である要素があれば、ただちに true を返します。

chain(*enums) -> Enumerator::Chain

自身と enums 引数を続けて繰り返す Enumerator::Chain を返します。

chunk {|elt| ... } -> Enumerator

要素を前から順にブロックで評価し、その結果によって要素をチャンクに分けた(グループ化した)要素を持つ Enumerator を返します。

chunk_while {|elt_before, elt_after| ... } -> Enumerator

要素を前から順にブロックで評価し、その結果によって要素をチャンクに分けた(グループ化した)要素を持つEnumerator を返します。

collect -> Enumerator
map -> Enumerator
collect {|item| ... } -> [object]
map {|item| ... } -> [object]

各要素に対してブロックを評価した結果を全て含む配列を返します。

flat_map -> Enumerator
collect_concat -> Enumerator
flat_map {| obj | block } -> Array
collect_concat {| obj | block } -> Array

各要素をブロックに渡し、その返り値を連結した配列を返します。

count -> Integer
count(item) -> Integer
count {|obj| ... } -> Integer

レシーバの要素数を返します。

cycle(n=nil) -> Enumerator
cycle(n=nil) {|obj| ... } -> object | nil

Enumerable オブジェクトの各要素を n 回 or 無限回(n=nil)繰り返しブロックを呼びだします。

find(ifnone = nil) -> Enumerator
detect(ifnone = nil) -> Enumerator
find(ifnone = nil) {|item| ... } -> object
detect(ifnone = nil) {|item| ... } -> object

要素に対してブロックを評価した値が真になった最初の要素を返します。

drop(n) -> Array

Enumerable オブジェクトの先頭の n 要素を捨てて、残りの要素を配列として返します。

drop_while -> Enumerator
drop_while {|element| ... } -> Array

ブロックを評価して最初に偽となった要素の手前の要素まで捨て、残りの要素を配列として返します。

each_cons(n) -> Enumerator
each_cons(n) {|list| ... } -> nil

要素を重複ありで n 要素ずつに区切り、ブロックに渡して繰り返します。

each_entry -> Enumerator
each_entry {|obj| block} -> self

ブロックを各要素に一度ずつ適用します。

each_slice(n) -> Enumerator
each_slice(n) {|list| ... } -> nil

n 要素ずつブロックに渡して繰り返します。

each_with_index(*args) -> Enumerator
each_with_index(*args) {|item, index| ... } -> self

要素とそのインデックスをブロックに渡して繰り返します。

each_with_object(obj) -> Enumerator
each_with_object(obj) {|(*args), memo_obj| ... } -> object

与えられた任意のオブジェクトと要素をブロックに渡し繰り返し、最初に与えられたオブジェクトを返します。

to_a(*args) -> [object]
entries(*args) -> [object]

全ての要素を含む配列を返します。

find_all -> Enumerator
select -> Enumerator
filter -> Enumerator
find_all {|item| ... } -> [object]
select {|item| ... } -> [object]
filter {|item| ... } -> [object]

各要素に対してブロックを評価した値が真であった要素を全て含む配列を返します。真になる要素がひとつもなかった場合は空の配列を返します。

find_index(val) -> Integer | nil
find_index {|obj| ... } -> Integer | nil
find_index -> Enumerator

条件に一致する最初の要素の位置を返します。

first -> object | nil
first(n) -> Array

Enumerable オブジェクトの最初の要素、もしくは最初の n 要素を返します。

grep(pattern) -> [object]
grep(pattern) {|item| ... } -> [object]

pattern === item が成立する要素を全て含んだ配列を返します。

grep_v(pattern) -> [object]
grep_v(pattern) { |item| ... } -> [object]

Enumerable#grep のマッチの条件を逆にして、pattern === item が成立しない要素を全て含んだ配列を返します。

group_by -> Enumerator
group_by {|obj| ... } -> Hash

ブロックを評価した結果をキー、対応する要素の配列を値とするハッシュを返します。

member?(val) -> bool
include?(val) -> bool

val と == の関係にある要素を含むとき真を返します。

inject(init = self.first) {|result, item| ... } -> object
inject(sym) -> object
inject(init, sym) -> object
reduce(init = self.first) {|result, item| ... } -> object
reduce(sym) -> object
reduce(init, sym) -> object

リストのたたみこみ演算を行います。

lazy -> Enumerator::Lazy

自身を lazy な Enumerator に変換したものを返します。

max -> object | nil
max(n) -> Array

最大の要素、もしくは最大の n 要素が入った降順の配列を返します。全要素が互いに <=> メソッドで比較できることを仮定しています。

max {|a, b| ... } -> object | nil
max(n) {|a, b| ... } -> Array

ブロックの評価結果で各要素の大小判定を行い、最大の要素、もしくは最大の n 要素が入った降順の配列を返します。引数を指定しない形式では要素が存在しなければ nil を返します。引数を指定する形式では、空の配列を返します。

max_by -> Enumerator
max_by(n) -> Enumerator
max_by {|item| ... } -> object | nil
max_by(n) {|item| ... } -> Array

各要素を順番にブロックに渡して実行し、その評価結果を <=> で比較して、最大であった値に対応する元の要素、もしくは最大の n 要素が降順で入った配列を返します。

min -> object | nil
min(n) -> Array

最小の要素、もしくは最小の n 要素が昇順で入った配列を返します。全要素が互いに <=> メソッドで比較できることを仮定しています。

min {|a, b| ... } -> object | nil
min(n) {|a, b| ... } -> Array

ブロックの評価結果で各要素の大小判定を行い、最小の要素、もしくは最小の n 要素が昇順で入った配列を返します。引数を指定しない形式では要素が存在しなければ nil を返します。引数を指定する形式では、空の配列を返します。

min_by -> Enumerator
min_by(n) -> Enumerator
min_by {|item| ... } -> object | nil
min_by(n) {|item| ... } -> Array

各要素を順番にブロックに渡して評価し、その評価結果を <=> で比較して、最小であった値に対応する元の要素、もしくは最小の n 要素が昇順で入った配列を返します。

minmax -> [object, object]
minmax {|a, b| ... } -> [object, object]

Enumerable オブジェクトの各要素のうち最小の要素と最大の要素を要素とするサイズ 2 の配列を返します。

minmax_by -> Enumerator
minmax_by {|obj| ... } -> [object, object]

Enumerable オブジェクトの各要素をブロックに渡して評価し、その結果を <=> で比較して最小の要素と最大の要素を要素とするサイズ 2 の配列を返します。

none? -> bool
none? {|obj| ... } -> bool
none?(pattern) -> bool

ブロックを指定しない場合は、 Enumerable オブジェクトのすべての要素が偽であれば真を返します。そうでなければ偽を返します。

one? -> bool
one? {|obj| ... } -> bool
one?(pattern) -> bool

ブロックを指定しない場合は、 Enumerable オブジェクトの要素のうちちょうど一つだけが真であれば、真を返します。そうでなければ偽を返します。

partition -> Enumerator
partition {|item| ... } -> [[object], [object]]

各要素を、ブロックの条件を満たす要素と満たさない要素に分割します。各要素に対してブロックを評価して、その値が真であった要素の配列と、偽であった要素の配列の 2 つを配列に入れて返します。

reject -> Enumerator
reject {|item| ... } -> [object]

各要素に対してブロックを評価し、その値が偽であった要素を集めた新しい配列を返します。条件を反転させた select です。

reverse_each -> Enumerator
reverse_each {|element| ... } -> self

逆順に各要素に対してブロックを評価します。

slice_after(pattern) -> Enumerator
slice_after {|elt| bool } -> Enumerator

パターンがマッチした要素、もしくはブロックが真を返した要素を末尾の要素としてチャンク化(グループ化)したものを繰り返す Enumerator を 返します。

slice_before(pattern) -> Enumerator
slice_before {|elt| bool } -> Enumerator

パターンがマッチした要素、もしくはブロックが真を返した要素から次にマッチする手前までをチャンク化(グループ化)したものを繰り返す Enumerator を返します。

slice_when {|elt_before, elt_after| bool } -> Enumerator

要素を前から順にブロックで評価し、その結果によって要素をチャンクに分けた(グループ化した)要素を持つEnumerator を返します。

sort -> [object]
sort {|a, b| ... } -> [object]

全ての要素を昇順にソートした配列を生成して返します。

sort_by -> Enumerator
sort_by {|item| ... } -> [object]

ブロックの評価結果を <=> メソッドで比較することで、self を昇順にソートします。ソートされた配列を新たに生成して返します。

sum(init=0) -> object
sum(init=0) {|e| expr } -> object

要素の合計を返します。

take(n) -> Array

Enumerable オブジェクトの先頭から n 要素を配列として返します。

take_while -> Enumerator
take_while {|element| ... } -> Array

Enumerable オブジェクトの要素を順に偽になるまでブロックで評価します。最初に偽になった要素の手前の要素までを配列として返します。

to_h(*args) -> Hash
to_h(*args) { ... } -> Hash

self を [key, value] のペアの配列として解析した結果を Hash にして返します。

uniq -> Array
uniq { |item| ... } -> Array

self から重複した値を取り除いた配列を返します。

zip(*lists) -> [[object]]
zip(*lists) {|v1, v2, ...| ...} -> nil

self と引数に渡した配列の各要素からなる配列の配列を生成して返します。生成される配列の要素数は self の要素数と同じです。

追加されるメソッド

定義 説明 ライブラリ
to_set(klass = Set, *args) -> Set
to_set(klass = Set, *args) {|o| ... } -> Set

Enumerable オブジェクトの要素から、新しい集合オブジェクトを作ります。

set