るりまサーチ

最速Rubyリファレンスマニュアル検索!
315件ヒット [1-100件を表示] (0.142秒)
トップページ > クエリ:self[x] > クエリ:t[x] > モジュール:Enumerable[x]

別のキーワード

  1. object yield_self
  2. _builtin yield_self
  3. _builtin self
  4. tracepoint self
  5. codeobject document_self

ライブラリ

キーワード

検索結果

<< 1 2 3 ... > >>

Enumerable#inject(init = self.first) {|result, item| ... } -> object (6215.0)

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

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

最初に初期値 init self の最初の要素を引数にブロックを実行します。
2 回目以降のループでは、前のブロックの実行結果と
self
の次の要素を引数に順次ブロックを実行します。
そう...
...て最後の要素まで繰り返し、最後のブロックの実行結果を返します。

要素が存在しない場合は init を返します。

初期値 init を省略した場合は、
最初に先頭の要素と 2 番目の要素をブロックに渡します。
また要素が 1 つし...
...クを実行せずに最初の要素を返します。
要素がなければブロックを実行せずに nil を返します。

@param init 最初の result の値です。任意のオブジェクトが渡せます。
@param sym ブロックの代わりに使われるメソッド名を表す S...

Enumerable#each_entry {|obj| block} -> self (6202.0)

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

...配列として渡されます。

//emlist[例][ruby]{
class Foo
include Enumerable
def each
yield 1
yield 1,2
end
end
Foo.new.each_entry{|o| print o, " -- "}
# => 1 -- [1, 2] --
//}

ブロックを省略した場合は Enumerator が返されます。

@see Enumerable#slice_before...

Enumerable#each_with_index(*args) {|item, index| ... } -> self (6202.0)

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

...ックを省略した場合は、
要素とそのインデックスを繰り返すような
Enumerator を返します。

Enumerator#with_index は offset 引数を受け取りますが、
each_with_index は受け取りません (引数はイテレータメソッドにそのまま渡されます)...
...ど) にそのまま渡されます。

//emlist[例][ruby]{
[5, 10, 15].each_with_index do |n, idx|
p [n, idx]
end
# => [5, 0]
# [10, 1]
# [15, 2]
//}

//emlist[引数ありの例][ruby]{
require 'stringio'
StringIO.new("foo|bar|baz").each_with_index("|") do |s, i|
p [s, i]
end
# => ["foo...
...|", 0]
# ["bar|", 1]
# ["baz", 2]
//}

@see Enumerator#with_index...

Enumerable#tally -> Hash (6133.0)

self に含まれる要素を数え上げた結果を Hash で返します。 Hash のキーは self に含まれる要素で、Hash の値は対応する要素が出現する回数です。

...
self
に含まれる要素を数え上げた結果を Hash で返します。
Hash のキーは self に含まれる要素で、Hash の値は対応する要素が出現する回数です。

返り値は Hash であり、内部でも Hash と同等に要素を区別し数えます。
そのため...
...、独自で定義するクラスでも Object#hash と Object#eql? を適切に定義することで数えることができます。


//emlist[例][ruby]{
["a", "b", "c", "b"].tally #=> {"a"=>1, "b"=>2, "c"=>1}

//}...
...ラスでも Object#hash と Object#eql? を適切に定義することで数えることができます。

@param hash 結果を加算していく Hash を指定します。更新される値は Integer である必要があります。

//emlist[例][ruby]{
["a", "b", "c", "b"].tally #=> {"a"=>1...
..., "b"=>2, "c"=>1}

h = {}
[:a, :b, :c].tally(h)
[:a, :b, :d].tally(h)

p h # => {:a=>2, :b=>2, :c=>1, :d=>1}
//}...

Enumerable#tally(hash) -> Hash (6133.0)

self に含まれる要素を数え上げた結果を Hash で返します。 Hash のキーは self に含まれる要素で、Hash の値は対応する要素が出現する回数です。

...
self
に含まれる要素を数え上げた結果を Hash で返します。
Hash のキーは self に含まれる要素で、Hash の値は対応する要素が出現する回数です。

返り値は Hash であり、内部でも Hash と同等に要素を区別し数えます。
そのため...
...ラスでも Object#hash と Object#eql? を適切に定義することで数えることができます。

@param hash 結果を加算していく Hash を指定します。更新される値は Integer である必要があります。

//emlist[例][ruby]{
["a", "b", "c", "b"].tally #=> {"a"=>1...
..., "b"=>2, "c"=>1}

h = {}
[:a, :b, :c].tally(h)
[:a, :b, :d].tally(h)

p h # => {:a=>2, :b=>2, :c=>1, :d=>1}
//}...

絞り込み条件を変える

Enumerable#sort_by -> Enumerator (6129.0)

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

...比較することで、self を昇
順にソートします。ソートされた配列を新たに生成して返します。

つまり、以下とほぼ同じ動作をします。

//emlist[例][ruby]{
class Array
def sort_by
self
.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0]...
...d
//}

Enumerable
#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort_by を使わない以下の例では比較を行う度に downcase が実行されます。
従って downcase の実行速度が遅ければ sort...
...す。

//emlist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort {|a, b| a.downcase <=> b.downcase }
//}

一方、次のように sort_by を使うと downcase の実行回数は要素数と同じです。
つまり、その部分の実行時間は O(n) のオーダーです。

//emlist[][ruby]{
p ["...

Enumerable#sort_by {|item| ... } -> [object] (6129.0)

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

...比較することで、self を昇
順にソートします。ソートされた配列を新たに生成して返します。

つまり、以下とほぼ同じ動作をします。

//emlist[例][ruby]{
class Array
def sort_by
self
.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0]...
...d
//}

Enumerable
#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙げられます。
sort_by を使わない以下の例では比較を行う度に downcase が実行されます。
従って downcase の実行速度が遅ければ sort...
...す。

//emlist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort {|a, b| a.downcase <=> b.downcase }
//}

一方、次のように sort_by を使うと downcase の実行回数は要素数と同じです。
つまり、その部分の実行時間は O(n) のオーダーです。

//emlist[][ruby]{
p ["...

Enumerable#compact -> Array (6117.0)

self から nil を取り除いた配列を生成して返します。

...
self
から nil を取り除いた配列を生成して返します。

//emlist[][ruby]{
def with_nils
yield 1
yield 2
yield nil
yield 3
end

t
o_enum(:with_nils).compact # => [1, 2, 3]
//}

@see Array#compact...

Enumerable#to_h(*args) -> Hash (6117.0)

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

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

@param args each の呼び出し時に引数として渡されます。

//emlist[例][ruby]{
%i[hello world].each_with_index.to_h # => {:hello => 0, :world => 1}
//}...
...
self
を [key, value] のペアの配列として解析した結果を Hash にして
返します。

@param args each の呼び出し時に引数として渡されます。

//emlist[例][ruby]{
%i[hello world].each_with_index.to_h # => {:hello => 0, :world => 1}
//}

ブロックを指定する...
...と各要素でブロックを呼び出し、
その結果をペアとして使います。

//emlist[ブロック付きの例][ruby]{
(1..5).to_h {|x| [x, x ** 2]} # => {1=>1, 2=>4, 3=>9, 4=>16, 5=>25}
//}...

Enumerable#to_h(*args) { ... } -> Hash (6117.0)

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

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

@param args each の呼び出し時に引数として渡されます。

//emlist[例][ruby]{
%i[hello world].each_with_index.to_h # => {:hello => 0, :world => 1}
//}

ブロックを指定する...
...と各要素でブロックを呼び出し、
その結果をペアとして使います。

//emlist[ブロック付きの例][ruby]{
(1..5).to_h {|x| [x, x ** 2]} # => {1=>1, 2=>4, 3=>9, 4=>16, 5=>25}
//}...

絞り込み条件を変える

Enumerable#inject(init, sym) -> object (6115.0)

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

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

最初に初期値 init self の最初の要素を引数にブロックを実行します。
2 回目以降のループでは、前のブロックの実行結果と
self
の次の要素を引数に順次ブロックを実行します。
そう...
...て最後の要素まで繰り返し、最後のブロックの実行結果を返します。

要素が存在しない場合は init を返します。

初期値 init を省略した場合は、
最初に先頭の要素と 2 番目の要素をブロックに渡します。
また要素が 1 つし...
...クを実行せずに最初の要素を返します。
要素がなければブロックを実行せずに nil を返します。

@param init 最初の result の値です。任意のオブジェクトが渡せます。
@param sym ブロックの代わりに使われるメソッド名を表す S...

Enumerable#inject(sym) -> object (6115.0)

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

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

最初に初期値 init self の最初の要素を引数にブロックを実行します。
2 回目以降のループでは、前のブロックの実行結果と
self
の次の要素を引数に順次ブロックを実行します。
そう...
...て最後の要素まで繰り返し、最後のブロックの実行結果を返します。

要素が存在しない場合は init を返します。

初期値 init を省略した場合は、
最初に先頭の要素と 2 番目の要素をブロックに渡します。
また要素が 1 つし...
...クを実行せずに最初の要素を返します。
要素がなければブロックを実行せずに nil を返します。

@param init 最初の result の値です。任意のオブジェクトが渡せます。
@param sym ブロックの代わりに使われるメソッド名を表す S...
<< 1 2 3 ... > >>