ライブラリ
- ビルトイン (43)
キーワード
- cycle (2)
- detect (2)
-
drop
_ while (2) -
each
_ cons (2) -
each
_ slice (2) -
each
_ with _ index (2) -
enum
_ cons (2) -
enum
_ slice (2) -
enum
_ with _ index (1) - find (2)
-
find
_ all (2) -
find
_ index (2) -
group
_ by (2) -
max
_ by (2) -
min
_ by (2) -
minmax
_ by (2) - partition (2)
- reject (2)
-
reverse
_ each (2) - select (2)
-
sort
_ by (2) -
take
_ while (2)
検索結果
先頭5件
-
Enumerable
# cycle(n=nil) -> Enumerable :: Enumerator (108) -
Enumerable オブジェクトの各要素を n 回 or 無限回(n=nil)繰り返し ブロックを呼びだします。
...Enumerable オブジェクトの各要素を n 回 or 無限回(n=nil)繰り返し
ブロックを呼びだします。
n に 0 もしくは負の値を渡した場合は何もしません。
繰り返しが最後まで終了した場合(つまりbreakなどで中断しなかった場合)
は nil......を返します。
このメソッドは内部の配列に各要素を保存しておくため、
一度 Enumerable の終端に到達した後に自分自身を変更しても
このメソッドの動作に影響を与えません。
a = ["a", "b", "c"]
a.cycle {|x| puts x } # print, a, b, c,......a, b, c,.. forever.
a.cycle(2) {|x| puts x } # print, a, b, c, a, b, c.
@return ブロックを指定しなかった場合は、Enumerable::Enumerator を返します。
レシーバが空の場合は nil を返します。... -
Enumerable
# drop _ while -> Enumerable :: Enumerator (108) -
ブロックを評価して最初に偽となった要素の手前の要素まで捨て、 残りの要素を配列として返します。
...クを評価して最初に偽となった要素の手前の要素まで捨て、
残りの要素を配列として返します。
ブロックを指定しなかった場合は、Enumerable::Enumerator を返します。
a = [1, 2, 3, 4, 5, 0]
a.drop_while {|i| i < 3 } # => [3, 4, 5, 0]... -
Enumerable
# find _ index -> Enumerable :: Enumerator (108) -
要素を先頭から順にブロックに渡して評価し、最初に真になった要素のインデックスを返します。 一つも真にならなければ nil を返します。
...を返します。
一つも真にならなければ nil を返します。
(1..10).find_index {|i| i % 5 == 0 and i % 7 == 0 } #=> nil
(1..100).find_index {|i| i % 5 == 0 and i % 7 == 0 } #=> 34
ブロックを指定しなかった場合は、Enumerable::Enumerator を返します。... -
Enumerable
# detect(ifnone = nil) -> Enumerable :: Enumerator (103) -
要素に対してブロックを評価した値が真になった最初の要素を返します。
要素に対してブロックを評価した値が真になった最初の要素を返します。
真になる要素が見つからず、ifnone も指定されていないときは nil を返します。
真になる要素が見つからず、ifnone が指定されているときは ifnone を call した結果を返します。
@arg ifnone call メソッドを持つオブジェクト (例えば Proc) を指定します。
例:
# 最初の 3 の倍数を探す
p [1, 2, 3, 4, 5].find {|i| i % 3 == 0 } # => 3
p [2, 2, 2, 2, 2].find {|i| i... -
Enumerable
# each _ cons(n) -> Enumerable :: Enumerator (103) -
要素を重複ありで n 要素ずつに区切り、 ブロックに渡して繰り返します。
...素数より大きな数を与えると、ブロックは一度も実行されません。
例:
(1..10).each_cons(3){|v| p v }
# => [1, 2, 3]
# [2, 3, 4]
# [3, 4, 5]
# [4, 5, 6]
# [5, 6, 7]
# [6, 7, 8]
# [7, 8, 9]
# [8, 9, 10]
@see Enumerable#each_slice... -
Enumerable
# each _ slice(n) -> Enumerable :: Enumerator (103) -
n 要素ずつブロックに渡して繰り返します。
...1.9.1 以降ではなくなっています。
代わりに each_slice を使ってください。
@arg n 区切る要素数を示す整数です。
例:
(1..10).each_slice(3) {|a| p a}
# => [1, 2, 3]
# [4, 5, 6]
# [7, 8, 9]
# [10]
@see Enumerable#each_cons... -
Enumerable
# each _ with _ index -> Enumerable :: Enumerator (103) -
要素とそのインデックスをブロックに渡して繰り返します。
要素とそのインデックスをブロックに渡して繰り返します。
self を返します。
例:
[5, 10, 15].each_with_index do |n, idx|
p [n, idx]
end
# => [5, 0]
# [10, 1]
# [15, 2] -
Enumerable
# enum _ cons(n) -> Enumerable :: Enumerator (103) -
要素を重複ありで n 要素ずつに区切り、 ブロックに渡して繰り返します。
...素数より大きな数を与えると、ブロックは一度も実行されません。
例:
(1..10).each_cons(3){|v| p v }
# => [1, 2, 3]
# [2, 3, 4]
# [3, 4, 5]
# [4, 5, 6]
# [5, 6, 7]
# [6, 7, 8]
# [7, 8, 9]
# [8, 9, 10]
@see Enumerable#each_slice... -
Enumerable
# enum _ slice(n) -> Enumerable :: Enumerator (103) -
n 要素ずつブロックに渡して繰り返します。
...1.9.1 以降ではなくなっています。
代わりに each_slice を使ってください。
@arg n 区切る要素数を示す整数です。
例:
(1..10).each_slice(3) {|a| p a}
# => [1, 2, 3]
# [4, 5, 6]
# [7, 8, 9]
# [10]
@see Enumerable#each_cons... -
Enumerable
# enum _ with _ index -> Enumerable :: Enumerator (103) -
要素とそのインデックスをブロックに渡して繰り返します。
要素とそのインデックスをブロックに渡して繰り返します。
self を返します。
例:
[5, 10, 15].each_with_index do |n, idx|
p [n, idx]
end
# => [5, 0]
# [10, 1]
# [15, 2] -
Enumerable
# find(ifnone = nil) -> Enumerable :: Enumerator (103) -
要素に対してブロックを評価した値が真になった最初の要素を返します。
要素に対してブロックを評価した値が真になった最初の要素を返します。
真になる要素が見つからず、ifnone も指定されていないときは nil を返します。
真になる要素が見つからず、ifnone が指定されているときは ifnone を call した結果を返します。
@arg ifnone call メソッドを持つオブジェクト (例えば Proc) を指定します。
例:
# 最初の 3 の倍数を探す
p [1, 2, 3, 4, 5].find {|i| i % 3 == 0 } # => 3
p [2, 2, 2, 2, 2].find {|i| i... -
Enumerable
# find _ all -> Enumerable :: Enumerator (103) -
各要素に対してブロックを評価した値が真であった要素を全て含む配列を 返します。真になる要素がひとつもなかった場合は空の配列を返します。
各要素に対してブロックを評価した値が真であった要素を全て含む配列を
返します。真になる要素がひとつもなかった場合は空の配列を返します。 -
Enumerable
# select -> Enumerable :: Enumerator (103) -
各要素に対してブロックを評価した値が真であった要素を全て含む配列を 返します。真になる要素がひとつもなかった場合は空の配列を返します。
各要素に対してブロックを評価した値が真であった要素を全て含む配列を
返します。真になる要素がひとつもなかった場合は空の配列を返します。 -
Enumerable
# group _ by -> Enumerable :: Enumerator (102) -
ブロックを評価した結果をキー、対応する要素の配列を値とするハッシュを返します。
ブロックを評価した結果をキー、対応する要素の配列を値とするハッシュを返します。
(1..6).group_by {|i| i%3} #=> {0=>[3, 6], 1=>[1, 4], 2=>[2, 5]} -
Enumerable
# max _ by -> Enumerable :: Enumerator (102) -
各要素を順番にブロックに渡して実行し、 その評価結果を <=> で比較して、 最大であった値に対応する元の要素を返します。
...。
要素が存在しないときは nil を返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。
Enumerable#max と Enumerable#max_by の
違いは Enumerable#sort と Enumerable#sort_by の違いと同じです。
@see Enumerable#sort_by... -
Enumerable
# min _ by -> Enumerable :: Enumerator (102) -
各要素を順番にブロックに渡して評価し、 その評価結果を <=> で比較して、 最小であった値に対応する元の要素を返します。
...要素が存在しないときは nil を返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。
Enumerable#min と Enumerable#min_by の
違いは Enumerable#sort と Enumerable#sort_by の違いと同じです。
@see Enumerable#sort_by... -
Enumerable
# minmax _ by -> Enumerable :: Enumerator (102) -
Enumerable オブジェクトの各要素をブロックに渡して評価し、その結果を <=> で比較して 最小の要素と最大の要素を要素とするサイズ 2 の配列を返します。
...
Enumerable オブジェクトの各要素をブロックに渡して評価し、その結果を <=> で比較して
最小の要素と最大の要素を要素とするサイズ 2 の配列を返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。......inmax と Enumerable#minmax_by の
違いは sort と sort_by の違いと同じです。
詳細は Enumerable#sort_by を参照してください。
a = %w(albatross dog horse)
a.minmax_by {|x| x.length } #=> ["dog", "albatross"]
[].minmax_by{} # => [nil, nil]
@see Enumerable#sort_by... -
Enumerable
# partition -> Enumerable :: Enumerator (102) -
各要素を、ブロックの条件を満たす要素と満たさない要素に分割します。 各要素に対してブロックを評価して、その値が真であった要素の配列と、 偽であった要素の配列の 2 つを配列に入れて返します。
各要素を、ブロックの条件を満たす要素と満たさない要素に分割します。
各要素に対してブロックを評価して、その値が真であった要素の配列と、
偽であった要素の配列の 2 つを配列に入れて返します。
例:
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0].partition {|i| i % 3 == 0 }
#=> [[9, 6, 3, 0], [10, 8, 7, 5, 4, 2, 1]] -
Enumerable
# reject -> Enumerable :: Enumerator (102) -
各要素に対してブロックを評価し、 その値が偽であった要素を集めた新しい配列を返します。 条件を反転させた select です。
...対してブロックを評価し、
その値が偽であった要素を集めた新しい配列を返します。
条件を反転させた select です。
例:
# 偶数を除外する (奇数を集める)
[1, 2, 3, 4, 5, 6].reject {|i| i % 2 == 0 } # => [1, 3, 5]
@see Enumerable#select... -
Enumerable
# reverse _ each -> Enumerable :: Enumerator (102) -
逆順に各要素に対してブロックを評価します。
逆順に各要素に対してブロックを評価します。
内部で各要素を保持した配列を作ります。 -
Enumerable
# sort _ by -> Enumerable :: Enumerator (102) -
ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。 つまり、以下とほぼ同じ動作をします。
...class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort_by を使......}
$n = 0
ary.sort {|a,b| a.count <=> b.count }
p $n # => 18200
$n = 0
ary.sort_by {|v| v.count }
p $n # => 1000
Enumerable#sort_by は安定ではありません (unstable sort)。
ただし、sort_by を以下のように使うと安定なソートを実装でき......ます。
i = 0
ary.sort_by {|v| [v, i += 1] }
※ 比較結果が同じ要素は元の順序通りに並ぶソートを
「安定なソート (stable sort)」と言います。
@see Enumerable#sort... -
Enumerable
# take _ while -> Enumerable :: Enumerator (102) -
Enumerable オブジェクトの要素を順に偽になるまでブロックで評価します。 最初に偽になった要素の手前の要素までを配列として返します。
...
Enumerable オブジェクトの要素を順に偽になるまでブロックで評価します。
最初に偽になった要素の手前の要素までを配列として返します。
a = [1, 2, 3, 4, 5, 0]
a.take_while {|i| i < 3 } # => [1, 2]... -
Enumerable
# cycle(n=nil) {|obj| . . . } -> object | nil (8) -
Enumerable オブジェクトの各要素を n 回 or 無限回(n=nil)繰り返し ブロックを呼びだします。
...Enumerable オブジェクトの各要素を n 回 or 無限回(n=nil)繰り返し
ブロックを呼びだします。
n に 0 もしくは負の値を渡した場合は何もしません。
繰り返しが最後まで終了した場合(つまりbreakなどで中断しなかった場合)
は nil......を返します。
このメソッドは内部の配列に各要素を保存しておくため、
一度 Enumerable の終端に到達した後に自分自身を変更しても
このメソッドの動作に影響を与えません。
a = ["a", "b", "c"]
a.cycle {|x| puts x } # print, a, b, c,......a, b, c,.. forever.
a.cycle(2) {|x| puts x } # print, a, b, c, a, b, c.
@return ブロックを指定しなかった場合は、Enumerable::Enumerator を返します。
レシーバが空の場合は nil を返します。... -
Enumerable
# drop _ while {|element| . . . } -> Array (8) -
ブロックを評価して最初に偽となった要素の手前の要素まで捨て、 残りの要素を配列として返します。
...クを評価して最初に偽となった要素の手前の要素まで捨て、
残りの要素を配列として返します。
ブロックを指定しなかった場合は、Enumerable::Enumerator を返します。
a = [1, 2, 3, 4, 5, 0]
a.drop_while {|i| i < 3 } # => [3, 4, 5, 0]... -
Enumerable
# find _ index {|obj| . . . } -> Integer | nil (8) -
要素を先頭から順にブロックに渡して評価し、最初に真になった要素のインデックスを返します。 一つも真にならなければ nil を返します。
...を返します。
一つも真にならなければ nil を返します。
(1..10).find_index {|i| i % 5 == 0 and i % 7 == 0 } #=> nil
(1..100).find_index {|i| i % 5 == 0 and i % 7 == 0 } #=> 34
ブロックを指定しなかった場合は、Enumerable::Enumerator を返します。... -
Enumerable
# detect(ifnone = nil) {|item| . . . } -> object (3) -
要素に対してブロックを評価した値が真になった最初の要素を返します。
要素に対してブロックを評価した値が真になった最初の要素を返します。
真になる要素が見つからず、ifnone も指定されていないときは nil を返します。
真になる要素が見つからず、ifnone が指定されているときは ifnone を call した結果を返します。
@arg ifnone call メソッドを持つオブジェクト (例えば Proc) を指定します。
例:
# 最初の 3 の倍数を探す
p [1, 2, 3, 4, 5].find {|i| i % 3 == 0 } # => 3
p [2, 2, 2, 2, 2].find {|i| i... -
Enumerable
# each _ cons(n) {|list| . . . } -> nil (3) -
要素を重複ありで n 要素ずつに区切り、 ブロックに渡して繰り返します。
...素数より大きな数を与えると、ブロックは一度も実行されません。
例:
(1..10).each_cons(3){|v| p v }
# => [1, 2, 3]
# [2, 3, 4]
# [3, 4, 5]
# [4, 5, 6]
# [5, 6, 7]
# [6, 7, 8]
# [7, 8, 9]
# [8, 9, 10]
@see Enumerable#each_slice... -
Enumerable
# each _ slice(n) {|list| . . . } -> nil (3) -
n 要素ずつブロックに渡して繰り返します。
...1.9.1 以降ではなくなっています。
代わりに each_slice を使ってください。
@arg n 区切る要素数を示す整数です。
例:
(1..10).each_slice(3) {|a| p a}
# => [1, 2, 3]
# [4, 5, 6]
# [7, 8, 9]
# [10]
@see Enumerable#each_cons... -
Enumerable
# each _ with _ index {|item , index| . . . } -> self (3) -
要素とそのインデックスをブロックに渡して繰り返します。
要素とそのインデックスをブロックに渡して繰り返します。
self を返します。
例:
[5, 10, 15].each_with_index do |n, idx|
p [n, idx]
end
# => [5, 0]
# [10, 1]
# [15, 2] -
Enumerable
# enum _ cons(n) {|list| . . . } -> nil (3) -
要素を重複ありで n 要素ずつに区切り、 ブロックに渡して繰り返します。
...素数より大きな数を与えると、ブロックは一度も実行されません。
例:
(1..10).each_cons(3){|v| p v }
# => [1, 2, 3]
# [2, 3, 4]
# [3, 4, 5]
# [4, 5, 6]
# [5, 6, 7]
# [6, 7, 8]
# [7, 8, 9]
# [8, 9, 10]
@see Enumerable#each_slice... -
Enumerable
# enum _ slice(n) {|list| . . . } -> nil (3) -
n 要素ずつブロックに渡して繰り返します。
...1.9.1 以降ではなくなっています。
代わりに each_slice を使ってください。
@arg n 区切る要素数を示す整数です。
例:
(1..10).each_slice(3) {|a| p a}
# => [1, 2, 3]
# [4, 5, 6]
# [7, 8, 9]
# [10]
@see Enumerable#each_cons... -
Enumerable
# find(ifnone = nil) {|item| . . . } -> object (3) -
要素に対してブロックを評価した値が真になった最初の要素を返します。
要素に対してブロックを評価した値が真になった最初の要素を返します。
真になる要素が見つからず、ifnone も指定されていないときは nil を返します。
真になる要素が見つからず、ifnone が指定されているときは ifnone を call した結果を返します。
@arg ifnone call メソッドを持つオブジェクト (例えば Proc) を指定します。
例:
# 最初の 3 の倍数を探す
p [1, 2, 3, 4, 5].find {|i| i % 3 == 0 } # => 3
p [2, 2, 2, 2, 2].find {|i| i... -
Enumerable
# find _ all {|item| . . . } -> [object] (3) -
各要素に対してブロックを評価した値が真であった要素を全て含む配列を 返します。真になる要素がひとつもなかった場合は空の配列を返します。
各要素に対してブロックを評価した値が真であった要素を全て含む配列を
返します。真になる要素がひとつもなかった場合は空の配列を返します。 -
Enumerable
# select {|item| . . . } -> [object] (3) -
各要素に対してブロックを評価した値が真であった要素を全て含む配列を 返します。真になる要素がひとつもなかった場合は空の配列を返します。
各要素に対してブロックを評価した値が真であった要素を全て含む配列を
返します。真になる要素がひとつもなかった場合は空の配列を返します。 -
Enumerable
# group _ by {|obj| . . . } -> Hash (2) -
ブロックを評価した結果をキー、対応する要素の配列を値とするハッシュを返します。
ブロックを評価した結果をキー、対応する要素の配列を値とするハッシュを返します。
(1..6).group_by {|i| i%3} #=> {0=>[3, 6], 1=>[1, 4], 2=>[2, 5]} -
Enumerable
# max _ by {|item| . . . } -> object (2) -
各要素を順番にブロックに渡して実行し、 その評価結果を <=> で比較して、 最大であった値に対応する元の要素を返します。
...。
要素が存在しないときは nil を返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。
Enumerable#max と Enumerable#max_by の
違いは Enumerable#sort と Enumerable#sort_by の違いと同じです。
@see Enumerable#sort_by... -
Enumerable
# min _ by {|item| . . . } -> object (2) -
各要素を順番にブロックに渡して評価し、 その評価結果を <=> で比較して、 最小であった値に対応する元の要素を返します。
...要素が存在しないときは nil を返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。
Enumerable#min と Enumerable#min_by の
違いは Enumerable#sort と Enumerable#sort_by の違いと同じです。
@see Enumerable#sort_by... -
Enumerable
# minmax _ by {|obj| . . . } -> [object , object] (2) -
Enumerable オブジェクトの各要素をブロックに渡して評価し、その結果を <=> で比較して 最小の要素と最大の要素を要素とするサイズ 2 の配列を返します。
...
Enumerable オブジェクトの各要素をブロックに渡して評価し、その結果を <=> で比較して
最小の要素と最大の要素を要素とするサイズ 2 の配列を返します。
該当する要素が複数存在する場合、どの要素を返すかは不定です。......inmax と Enumerable#minmax_by の
違いは sort と sort_by の違いと同じです。
詳細は Enumerable#sort_by を参照してください。
a = %w(albatross dog horse)
a.minmax_by {|x| x.length } #=> ["dog", "albatross"]
[].minmax_by{} # => [nil, nil]
@see Enumerable#sort_by... -
Enumerable
# partition {|item| . . . } -> [[object] , [object]] (2) -
各要素を、ブロックの条件を満たす要素と満たさない要素に分割します。 各要素に対してブロックを評価して、その値が真であった要素の配列と、 偽であった要素の配列の 2 つを配列に入れて返します。
各要素を、ブロックの条件を満たす要素と満たさない要素に分割します。
各要素に対してブロックを評価して、その値が真であった要素の配列と、
偽であった要素の配列の 2 つを配列に入れて返します。
例:
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0].partition {|i| i % 3 == 0 }
#=> [[9, 6, 3, 0], [10, 8, 7, 5, 4, 2, 1]] -
Enumerable
# reject {|item| . . . } -> [object] (2) -
各要素に対してブロックを評価し、 その値が偽であった要素を集めた新しい配列を返します。 条件を反転させた select です。
...対してブロックを評価し、
その値が偽であった要素を集めた新しい配列を返します。
条件を反転させた select です。
例:
# 偶数を除外する (奇数を集める)
[1, 2, 3, 4, 5, 6].reject {|i| i % 2 == 0 } # => [1, 3, 5]
@see Enumerable#select... -
Enumerable
# reverse _ each {|element| . . . } -> self (2) -
逆順に各要素に対してブロックを評価します。
逆順に各要素に対してブロックを評価します。
内部で各要素を保持した配列を作ります。 -
Enumerable
# sort _ by {|item| . . . } -> [object] (2) -
ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。 つまり、以下とほぼ同じ動作をします。
...class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort_by を使......}
$n = 0
ary.sort {|a,b| a.count <=> b.count }
p $n # => 18200
$n = 0
ary.sort_by {|v| v.count }
p $n # => 1000
Enumerable#sort_by は安定ではありません (unstable sort)。
ただし、sort_by を以下のように使うと安定なソートを実装でき......ます。
i = 0
ary.sort_by {|v| [v, i += 1] }
※ 比較結果が同じ要素は元の順序通りに並ぶソートを
「安定なソート (stable sort)」と言います。
@see Enumerable#sort... -
Enumerable
# take _ while {|element| . . . } -> Array (2) -
Enumerable オブジェクトの要素を順に偽になるまでブロックで評価します。 最初に偽になった要素の手前の要素までを配列として返します。
...
Enumerable オブジェクトの要素を順に偽になるまでブロックで評価します。
最初に偽になった要素の手前の要素までを配列として返します。
a = [1, 2, 3, 4, 5, 0]
a.take_while {|i| i < 3 } # => [1, 2]...
