るりまサーチ

最速Rubyリファレンスマニュアル検索!
85件ヒット [1-85件を表示] (0.030秒)
トップページ > クエリ:Enumerator#next[x]

別のキーワード

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

ライブラリ

クラス

モジュール

キーワード

検索結果

Enumerator#next -> object (62143.0)

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

...合は、
StopIteration 例外を発生します。このとき列挙状態は変化しません。
つまりもう一度 next を呼ぶと再び例外が発生します。

next
メソッドによる外部列挙の状態は他のイテレータメソッドによる
内部列挙には影響を与え...
...ているとき
@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.each_byte

begin
puts enum.next while true
res...
...122
# iteration reached at end
puts enum.next
#=> 再度 StopIteration 例外が発生

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

Enumerator (38042.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#next_values -> Array (30239.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
p e.next
p...
...[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#peek_values -> Array (21168.0)

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

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

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

このメソッドは 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#peek -> object (21090.0)

「次」のオブジェクトを返しますが、列挙状態を変化させません。

...次」のオブジェクトを返しますが、列挙状態を変化させません。

Enumerator#next
のように
現在までの列挙状態に応じて「次」のオブジェクトを返しますが、
next
と異なり列挙状態を変更しません。

列挙が既に最後へ到達して...
..._enum
p e.next #=> 1
p e.peek #=> 2
p e.peek #=> 2
p e.peek #=> 2
p e.next #=> 2
p e.next #=> 3
p e.next #raises StopIteration

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

絞り込み条件を変える

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

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

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

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

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

# 例
# (1), (2), ... (10) の順に実行される
o = Object.new
def o.each...
...cks
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#rewind -> self (21042.0)

列挙状態を巻き戻します。

...

next
メソッドによる外部列挙の状態を最初まで巻き戻します。 self を返します。

内包するオブジェクトが rewind メソッドを持つとき(respond_to?(:rewind) に
真を返すとき) は、その rewind メソッドを呼び出します。

@see Enumerator#n...
...ext

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

p enum.next # => 120
p enum.next # => 121
enum.rewind
p enum.next # => 120...

Kernel.#loop -> Enumerator (135.0)

(中断されない限り)永遠にブロックの評価を繰り返します。 ブロックが指定されなければ、代わりに Enumerator を返します。

...なければ、代わりに Enumerator を返します。

loop do
print "Input: "
line = gets
break if !line or line =~ /^qQ/
# ...
end

与えられたブロック内で StopIteration を Kernel.#raise すると
ループを終了して Enumerator が最後に返した値を返...
...します。
ループを終了させる場合、通常は break を使用してください。

enum = Enumerator.new { |y|
y << "one"
y << "two"
:ok
}

result = loop {
puts enum.next
} # => :ok


@return break の引数など、ループ脱出時の値を返します。...

Object#then -> Enumerator (114.0)

self を引数としてブロックを評価し、ブロックの結果を返します。

...self を引数としてブロックを評価し、ブロックの結果を返します。

//emlist[例][ruby]{
3.next.then {|x| x**x }.to_s # => "256"
"my string".yield_self {|s| s.upcase } # => "MY STRING"
//}

値をメソッドチェインのパイプラインに次々と渡すの...
...nts).
yield_self {|url| open(url).read }.
yield_self {|response| JSON.parse(response) }
//}

ブロックなしで呼び出されたときは Enumerator を返します。
例えば条件によって値を捨てるのに使えます。

//emlist[][ruby]{
# 条件にあうので何もしない
1....

Object#yield_self -> Enumerator (114.0)

self を引数としてブロックを評価し、ブロックの結果を返します。

...self を引数としてブロックを評価し、ブロックの結果を返します。

//emlist[例][ruby]{
3.next.then {|x| x**x }.to_s # => "256"
"my string".yield_self {|s| s.upcase } # => "MY STRING"
//}

値をメソッドチェインのパイプラインに次々と渡すの...
...nts).
yield_self {|url| open(url).read }.
yield_self {|response| JSON.parse(response) }
//}

ブロックなしで呼び出されたときは Enumerator を返します。
例えば条件によって値を捨てるのに使えます。

//emlist[][ruby]{
# 条件にあうので何もしない
1....

絞り込み条件を変える

Find.#find(*dirs) -> Enumerator (113.0)

find(1) のように dir 配下のすべてのファイルや ディレクトリを一つずつ引数 file に渡してブロックを実行します。

...辿りません。
また file に渡される順序は不定です。

ブロックを省略した場合は、上記の処理を行うような Enumerator を返
します。

@param dirs 探索するディレクトリを一つ以上指定します。


例:

require 'find'

Find.find('/tmp')...
...使用します。この例では "/tmp/bar"
配下のファイルやディレクトリを探索しません。prune の代わりに
d:spec/control#next を使用した場合、"/tmp/bar" 自体をスキップする
だけで、その配下の探索は続行されます。

@see find(1), Find.#prune...

Find.#find(*dirs, ignore_error: true) -> Enumerator (113.0)

find(1) のように dir 配下のすべてのファイルや ディレクトリを一つずつ引数 file に渡してブロックを実行します。

...辿りません。
また file に渡される順序は不定です。

ブロックを省略した場合は、上記の処理を行うような Enumerator を返
します。

@param dirs 探索するディレクトリを一つ以上指定します。

@param ignore_error 探索中に発生した...
...使用します。この例では "/tmp/bar"
配下のファイルやディレクトリを探索しません。prune の代わりに
d:spec/control#next を使用した場合、"/tmp/bar" 自体をスキップする
だけで、その配下の探索は続行されます。

@see find(1), Find.#prune...

Object#yield_self -> Enumerator (113.0)

self を引数としてブロックを評価し、ブロックの結果を返します。

...ロックを評価し、ブロックの結果を返します。

//emlist[例][ruby]{
"my string".yield_self {|s| s.upcase } # => "MY STRING"
3.next.yield_self {|x| x**x }.to_s # => "256"
//}

値をメソッドチェインのパイプラインに次々と渡すのは良い使い方です。...
...nts).
yield_self {|url| open(url).read }.
yield_self {|response| JSON.parse(response) }
//}

ブロックなしで呼び出されたときは Enumerator を返します。
例えば条件によって値を捨てるのに使えます。

//emlist[][ruby]{
# 条件にあうので何もしない
1....

NEWS for Ruby 2.0.0 (66.0)

NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

...メソッドです

* Enumerator
* 追加: Enumerator#size サイズを遅延評価するためのメソッドです
* 拡張: Enumerator.new サイズの遅延評価のための引数を一つ受け取るようになりました
* 新規クラス: Enumerator::Lazy 遅延列挙用の...
...* 返り値変更:
* String#lines Enumerator ではなく Array を返します
* String#chars Enumerator ではなく Array を返します
* String#codepoints Enumerator ではなく Array を返します
* String#bytes Enumerator ではなく Array を返します

*...
...)

* Array#values_at
上を参照

* String#lines, String#chars, String#codepoints, String#bytes
これらのメソッドはもはや Enumerator を返しませんが、ブロックを与えた場合の動作は後方互換性のためまだサポートしています。
//emlist{
st...

StopIteration#result -> object (42.0)

この例外オブジェクトを発生させる原因となったメソッド等の返り値を返します。

...ect = Object.new
def object.each
yield :yield1
yield :yield2
:each_returned
end

enumerator
= object.to_enum

p enumerator.next #=> :yield1
p enumerator.next #=> :yield2

begin
enumerator
.next
rescue StopIteration => error
p error.result #=> :each_returned
end...

絞り込み条件を変える

Kernel.#loop { ... } -> object | nil (35.0)

(中断されない限り)永遠にブロックの評価を繰り返します。 ブロックが指定されなければ、代わりに Enumerator を返します。

...なければ、代わりに Enumerator を返します。

loop do
print "Input: "
line = gets
break if !line or line =~ /^qQ/
# ...
end

与えられたブロック内で StopIteration を Kernel.#raise すると
ループを終了して Enumerator が最後に返した値を返...
...します。
ループを終了させる場合、通常は break を使用してください。

enum = Enumerator.new { |y|
y << "one"
y << "two"
:ok
}

result = loop {
puts enum.next
} # => :ok


@return break の引数など、ループ脱出時の値を返します。...

Object#then {|x| ... } -> object (14.0)

self を引数としてブロックを評価し、ブロックの結果を返します。

...self を引数としてブロックを評価し、ブロックの結果を返します。

//emlist[例][ruby]{
3.next.then {|x| x**x }.to_s # => "256"
"my string".yield_self {|s| s.upcase } # => "MY STRING"
//}

値をメソッドチェインのパイプラインに次々と渡すの...
...nts).
yield_self {|url| open(url).read }.
yield_self {|response| JSON.parse(response) }
//}

ブロックなしで呼び出されたときは Enumerator を返します。
例えば条件によって値を捨てるのに使えます。

//emlist[][ruby]{
# 条件にあうので何もしない
1....

Object#yield_self {|x| ... } -> object (14.0)

self を引数としてブロックを評価し、ブロックの結果を返します。

...self を引数としてブロックを評価し、ブロックの結果を返します。

//emlist[例][ruby]{
3.next.then {|x| x**x }.to_s # => "256"
"my string".yield_self {|s| s.upcase } # => "MY STRING"
//}

値をメソッドチェインのパイプラインに次々と渡すの...
...nts).
yield_self {|url| open(url).read }.
yield_self {|response| JSON.parse(response) }
//}

ブロックなしで呼び出されたときは Enumerator を返します。
例えば条件によって値を捨てるのに使えます。

//emlist[][ruby]{
# 条件にあうので何もしない
1....

Find.#find(*dirs) {|file| ... } -> nil (13.0)

find(1) のように dir 配下のすべてのファイルや ディレクトリを一つずつ引数 file に渡してブロックを実行します。

...辿りません。
また file に渡される順序は不定です。

ブロックを省略した場合は、上記の処理を行うような Enumerator を返
します。

@param dirs 探索するディレクトリを一つ以上指定します。


例:

require 'find'

Find.find('/tmp')...
...使用します。この例では "/tmp/bar"
配下のファイルやディレクトリを探索しません。prune の代わりに
d:spec/control#next を使用した場合、"/tmp/bar" 自体をスキップする
だけで、その配下の探索は続行されます。

@see find(1), Find.#prune...

Find.#find(*dirs, ignore_error: true) {|file| ... } -> nil (13.0)

find(1) のように dir 配下のすべてのファイルや ディレクトリを一つずつ引数 file に渡してブロックを実行します。

...辿りません。
また file に渡される順序は不定です。

ブロックを省略した場合は、上記の処理を行うような Enumerator を返
します。

@param dirs 探索するディレクトリを一つ以上指定します。

@param ignore_error 探索中に発生した...
...使用します。この例では "/tmp/bar"
配下のファイルやディレクトリを探索しません。prune の代わりに
d:spec/control#next を使用した場合、"/tmp/bar" 自体をスキップする
だけで、その配下の探索は続行されます。

@see find(1), Find.#prune...

絞り込み条件を変える

Object#yield_self {|x| ... } -> object (13.0)

self を引数としてブロックを評価し、ブロックの結果を返します。

...ロックを評価し、ブロックの結果を返します。

//emlist[例][ruby]{
"my string".yield_self {|s| s.upcase } # => "MY STRING"
3.next.yield_self {|x| x**x }.to_s # => "256"
//}

値をメソッドチェインのパイプラインに次々と渡すのは良い使い方です。...
...nts).
yield_self {|url| open(url).read }.
yield_self {|response| JSON.parse(response) }
//}

ブロックなしで呼び出されたときは Enumerator を返します。
例えば条件によって値を捨てるのに使えます。

//emlist[][ruby]{
# 条件にあうので何もしない
1....

NEWS for Ruby 2.2.0 (12.0)

NEWS for Ruby 2.2.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。

...Enumerable#max, Enumerable#max_by
は複数の値を返すためのオプションをサポートしました


* Float
* 追加: Float#next_float
* 追加: Float#prev_float

* File
* 追加: File.birthtime
* 追加: File#birthtime

* File::Stat
* 追加: File::Stat#b...
...* TSort.tsort_each, TSort.each_strongly_connected_component,
TSort.each_strongly_connected_component_from はブロックを省略すると Enumerator を返すようになりました。

* xmlrpc
* LibXMLStreamParser という新しいパーサーを追加しました

=== 標準添付...