るりまサーチ

最速Rubyリファレンスマニュアル検索!
695件ヒット [1-100件を表示] (0.046秒)

別のキーワード

  1. each enumerator
  2. enumerator each
  3. enumerator new
  4. enumerator with_index
  5. enumerator with_object

ライブラリ

モジュール

オブジェクト

検索結果

<< 1 2 3 ... > >>

Enumerator (38030.0)

each 以外のメソッドにも Enumerable の機能を提供するためのラッパークラスです。 また、外部イテレータとしても使えます。

...を元にして定義されます。
Enumerator
を介することにより String#each_byte のような
異なる名前のイテレータについても each と同様に Enumerable の機能を利用できます。

Enumerator
を生成するには Enumerator.newあるいは
Object#to_enum, Objec...
...m_for を利用します。また、一部の
イテレータはブロックを渡さずに呼び出すと繰り返しを実行する代わりに
enumerator
を生成して返します。

=== 注意
外部イテレータとしての機能は Fiber を用いて実装されているため Fiber と...
...制限があります。
例えば以下のようなスレッドをまたいだ呼び出しはエラーになります。

a = nil
Thread.new do
a = [1, 2, 3].each
a.next
end
.join

p a.next
#=> t.rb:7:in `next': fiber called across threads (FiberError)
from t.rb:7:in `<main>'...

Enumerator#with_object(obj) -> Enumerator (21137.0)

繰り返しの各要素に obj を添えてブロックを繰り返し、obj を返り値として返します。

... Enumerator を返します。

=== 例
# 0,1,2 と呼びだす enumeratorを作る
to_three = Enumerator.new do |y|
3.times do |x|
y << x
end

end


to_three_with_string = to_three.with_object("foo")
to_three_with_string.each do |x,string|
puts "#{string}: #{x}"
end
...

Enumerator#each(*args) -> Enumerator (21113.0)

生成時のパラメータに従ってブロックを繰り返します。 *args を渡した場合は、生成時のパラメータ内引数末尾へ *args を追加した状態で繰り返します。 ブロック付きで呼び出された場合は、 生成時に指定したイテレータの戻り値をそのまま返します。

...レータの戻り値をそのまま返します。

@param args 末尾へ追加する引数

例1:

str = "Yet Another Ruby Hacker"

enum = Enumerator.new(str, :scan, /\w+/)
enum.each {|word| p word } # => "Yet"
# "Another"...
.../).to_a # => ["Hello", "world"]

obj = Object.new

def obj.each_arg(a, b=:b, *rest)
yield a
yield b
yield rest
:method_returned
end


enum = obj.to_enum :each_arg, :a, :x

enum.each.to_a # => [:a, :x, []]
enum.each.equal?(enum) # => true
enum.ea...

Enumerator::ArithmeticSequence#end -> Numeric | nil (21107.0)

上界 (終端) を返します。

...上界 (終端) を返します。

@see Enumerator::ArithmeticSequence#begin...

Enumerator#peek_values -> Array (21058.0)

Enumerator#next_values のように「次」のオブジェクトを 配列で返しますが、列挙状態を変化させません。

...
Enumerator
#next_values のように「次」のオブジェクトを
配列で返しますが、列挙状態を変化させません。

Enumerator
#next, Enumerator#next_values のように
現在までの列挙状態に応じて「次」のオブジェクトを返しますが、
next と異なり...
...Iteration 例外を発生します。

このメソッドは Enumerator#next_values と同様
yield

yield nil
を区別するために使えます。

# 例
o = Object.new
def o.each
yield
yield 1
yield 1, 2
end

e = o.to_enum
p e.peek_values #=> []
e.next
p e...
....peek_values #=> [1]
p e.peek_values #=> [1]
e.next
p e.peek_values #=> [1, 2]
e.next
p e.peek_values # raises StopIteration

@raise StopIteration 列挙状態が既に最後へ到達しているとき
@see Enumerator#next, Enumerator#next_values, Enumerator#peek_values...

絞り込み条件を変える

Enumerator#with_object(obj) {|(*args), memo_obj| ... } -> object (21037.0)

繰り返しの各要素に obj を添えてブロックを繰り返し、obj を返り値として返します。

... Enumerator を返します。

=== 例
# 0,1,2 と呼びだす enumeratorを作る
to_three = Enumerator.new do |y|
3.times do |x|
y << x
end

end


to_three_with_string = to_three.with_object("foo")
to_three_with_string.each do |x,string|
puts "#{string}: #{x}"
end
...

Enumerator#next -> object (21036.0)

「次」のオブジェクトを返します。

...

@raise StopIteration 列挙状態が既に最後へ到達しているとき
@see Enumerator#rewind

例1:
str = "xyz"
enum = str.each_byte

str.bytesize.times do
puts enum.next
end

# => 120
# 121
# 122

例2:
str = "xyz"
enum = str...
...begin
puts enum.next while true
rescue StopIteration
puts "iteration reached at end"
end

# => 120
# 121
# 122
# iteration reached at end
puts enum.next
#=> 再度 StopIteration 例外が発生

例3: Kernel.#loop は StopIt...
...eration を捕捉します。
str = "xyz"
enum = str.each_byte
loop do
puts enum.next
end

# => 120
# 121
# 122...

Enumerator#next_values -> Array (21030.0)

「次」のオブジェクトを配列で返します。

...「次」のオブジェクトを配列で返します。

Enumerator
#next とほぼ同様の挙動をします。終端まで到達した場合は
StopIteration 例外を発生させます。

このメソッドは、
yield

yield nil
を区別するために使えます。

next メソッ...
...

# 例、 next と next_values の違いを
o = Object.new
def o.each
yield
yield 1
yield 1, 2
yield nil
yield [1, 2]
end

e = o.to_enum
p e.next_values
p e.next_values
p e.next_values
p e.next_values
p e.next_values
e = o.to_enum
p e.next
p e.next...
...[1] 1
# yield 1, 2 [1, 2] [1, 2]
# yield nil [nil] nil
# yield [1, 2] [[1, 2]] [1, 2]

@raise StopIteration 列挙状態が既に最後へ到達しているとき
@see Enumerator#next, Enumerator#peek, Enumerator#peek_values...

Enumerator#feed(obj) -> nil (21028.0)

Enumerator 内部の yield が返す値を設定します。

...
Enumerator
内部の yield が返す値を設定します。

これで値を設定しなかった場合は yield は nil を返します。

この値は内部で yield された時点でクリアされます。

# 例
# (1), (2), ... (10) の順に実行される
o = Object.new
def o.each...
...s
p x # not reached w/o another e.next
end


e = o.to_enum
e.next # (1)
e.feed "foo" # (3)
e.next # (4)
e.next # (7)
# (10)
@param obj Enumerator 内部の yield が返す値
@raise TypeError すでに...

Enumerator#each -> self (21013.0)

生成時のパラメータに従ってブロックを繰り返します。 *args を渡した場合は、生成時のパラメータ内引数末尾へ *args を追加した状態で繰り返します。 ブロック付きで呼び出された場合は、 生成時に指定したイテレータの戻り値をそのまま返します。

...レータの戻り値をそのまま返します。

@param args 末尾へ追加する引数

例1:

str = "Yet Another Ruby Hacker"

enum = Enumerator.new(str, :scan, /\w+/)
enum.each {|word| p word } # => "Yet"
# "Another"...
.../).to_a # => ["Hello", "world"]

obj = Object.new

def obj.each_arg(a, b=:b, *rest)
yield a
yield b
yield rest
:method_returned
end


enum = obj.to_enum :each_arg, :a, :x

enum.each.to_a # => [:a, :x, []]
enum.each.equal?(enum) # => true
enum.ea...

絞り込み条件を変える

Enumerator#each {...} -> object (21013.0)

生成時のパラメータに従ってブロックを繰り返します。 *args を渡した場合は、生成時のパラメータ内引数末尾へ *args を追加した状態で繰り返します。 ブロック付きで呼び出された場合は、 生成時に指定したイテレータの戻り値をそのまま返します。

...レータの戻り値をそのまま返します。

@param args 末尾へ追加する引数

例1:

str = "Yet Another Ruby Hacker"

enum = Enumerator.new(str, :scan, /\w+/)
enum.each {|word| p word } # => "Yet"
# "Another"...
.../).to_a # => ["Hello", "world"]

obj = Object.new

def obj.each_arg(a, b=:b, *rest)
yield a
yield b
yield rest
:method_returned
end


enum = obj.to_enum :each_arg, :a, :x

enum.each.to_a # => [:a, :x, []]
enum.each.equal?(enum) # => true
enum.ea...

Enumerator#each(*args) {...} -> object (21013.0)

生成時のパラメータに従ってブロックを繰り返します。 *args を渡した場合は、生成時のパラメータ内引数末尾へ *args を追加した状態で繰り返します。 ブロック付きで呼び出された場合は、 生成時に指定したイテレータの戻り値をそのまま返します。

...レータの戻り値をそのまま返します。

@param args 末尾へ追加する引数

例1:

str = "Yet Another Ruby Hacker"

enum = Enumerator.new(str, :scan, /\w+/)
enum.each {|word| p word } # => "Yet"
# "Another"...
.../).to_a # => ["Hello", "world"]

obj = Object.new

def obj.each_arg(a, b=:b, *rest)
yield a
yield b
yield rest
:method_returned
end


enum = obj.to_enum :each_arg, :a, :x

enum.each.to_a # => [:a, :x, []]
enum.each.equal?(enum) # => true
enum.ea...

Enumerator::ArithmeticSequence#exclude_end? -> bool (9101.0)

上界 (終端) を含まないとき真を返します。

上界 (終端) を含まないとき真を返します。

Pathname#ascend -> Enumerator (6217.0)

self のパス名から親方向に辿っていったときの各パス名を新しい Pathname オ ブジェクトとして生成し、ブロックへの引数として渡して実行します。 ブロックを省略した場合は、上記の処理を行うような Enumerator を返します。

... Enumerator を返します。

require 'pathname'

Pathname.new('/path/to/some/file.rb').ascend {|v| p v}
#<Pathname:/path/to/some/file.rb>
#<Pathname:/path/to/some>
#<Pathname:/path/to>
#<Pathname:/path>
#<Pathname:/>

Pathname.new('path/to/some/file.rb').ascend {...

Pathname#descend -> Enumerator (6217.0)

self のパス名の親から子供へと辿っていったときの各パス名を新しい Pathname オブジェクトとして生成し、ブロックへの引数として渡して実行しま す。 ブロックを省略した場合は、上記の処理を行うような Enumerator を返します。

... Enumerator を返します。

require 'pathname'

Pathname.new('/path/to/some/file.rb').descend {|v| p v}
#<Pathname:/>
#<Pathname:/path>
#<Pathname:/path/to>
#<Pathname:/path/to/some>
#<Pathname:/path/to/some/file.rb>

Pathname.new('path/to/some/file.rb').descend {|...

絞り込み条件を変える

Pathname#ascend {|pathname| ... } -> nil (6117.0)

self のパス名から親方向に辿っていったときの各パス名を新しい Pathname オ ブジェクトとして生成し、ブロックへの引数として渡して実行します。 ブロックを省略した場合は、上記の処理を行うような Enumerator を返します。

... Enumerator を返します。

require 'pathname'

Pathname.new('/path/to/some/file.rb').ascend {|v| p v}
#<Pathname:/path/to/some/file.rb>
#<Pathname:/path/to/some>
#<Pathname:/path/to>
#<Pathname:/path>
#<Pathname:/>

Pathname.new('path/to/some/file.rb').ascend {...
<< 1 2 3 ... > >>