Enumerableモジュール 28個
暗記
rrr
2023年07月22日
カード28
いいね0
-
map / collect
与えられたブロックを評価した結果の配列を返す
-
each_with_index
要素とそのインデックスをブロックに渡して繰り返す
-
inject / reduce
自身のたたみこみ演算を行う
-
each_slice / each_cons
要素を指定された数ずつ要素を渡して繰り返す.
each_sliceメソッドは要素を指定された数で区切ってブロックに渡すため、要素数が指定された数で割り切れないときには最後だけ渡される数が少なくなります。
一方each_consメソッドは、先頭から要素を1つずつ選び、さらに余分に指定された数に合うように要素を選び、それらをブロックに渡していきます。
-
reverse_each
要素を逆順にブロックに渡して繰り返す
-
all?
全ての要素が真であればtrueを返す
-
any?
真である要素が1つでもあればtrueを返す
-
none?
全ての要素が偽であればtrueを返す
-
one?
1つの要素だけが真であればtrueを返す
-
member? / include?
指定された値と==メソッドがtrueとなる要素があるときにtrueを返します。
-
find / detect
ブロックを評価して最初に真となる要素を返します
-
find_index
要素の代わりにインデックスを返す
-
find_all / select
条件を満たす全ての要素を返す
-
reject
偽になった全ての要素を返す
-
grep
指定したパターンとマッチする(===メソッドがtrueとなる)要素を全て含んだ配列を返す
-
sort
要素を<=>メソッドで比較して昇順にソートした配列を、新たに生成して返します。
ブロックを取る場合には、ブロックの評価結果を元にソートします。
-
sort_by
ブロックの評価結果を<=>メソッドで比較して昇順にソートした配列を使って、元の配列をソートした新しい配列を生成して返します。
-
max / min
それぞれ要素の最大値と最小値を返します。
ただし<=>メソッドで比較するため、全ての要素がそれに対応している必要があります。またブロックを渡すと、ブロックの評価結果を元に大小判定を行います。
-
max_by / min_by
ブロックの評価結果が最大 / 最小である要素を返すブロックの評価結果が最大であった要素を返します。
-
count
要素数を返す
-
cycle
要素を先頭から順に取り出し、末尾まで到達したら再度先頭に戻り、それを繰り返します。
-
group_by
ブロックの評価結果をキーとし、同じキーを持つ要素を配列としたハッシュを返す
-
zip
自身と引数に指定した配列から、1つずつ要素を取り出して配列を作り、それを要素とする配列を返します。
-
first / take
先頭から指定した数の要素を配列として返します。firstメソッドのみ数を指定しない場合に先頭の要素のみを返します。
-
take_while
先頭からブロックを評価し、最初に偽になった要素の直前までを返す
-
drop
takeメソッドとは逆に、先頭から指定した数の要素を取り除いた残りの要素を配列として返す
-
drop_while
先頭からブロックを評価し、最初に偽になった要素の手前までを切り捨て、残りの要素を配列として返す
-
lazy
mapメソッドやselectメソッドなどのメソッドが、遅延評価を行うように再定義されます。
遅延評価になるとそれぞれのメソッドが配列ではなくEnumerator::Lazyを返すようになるため、メッソドを評価するタイミングを文字通り遅らせることができます。
-