ライブラリ
クラス
-
ARGF
. class (238) - Addrinfo (22)
- Array (625)
- Date (66)
- Dir (106)
- Enumerator (194)
-
Enumerator
:: ArithmeticSequence (84) -
Enumerator
:: Chain (36) -
Enumerator
:: Lazy (389) -
Enumerator
:: Yielder (27) -
Etc
:: Group (22) -
Etc
:: Passwd (22) -
Gem
:: SourceIndex (22) - Hash (310)
- IO (304)
- Integer (88)
- Matrix (214)
- Numeric (84)
- Object (70)
- OpenStruct (22)
- Pathname (114)
- Prime (44)
-
Prime
:: PseudoPrimeGenerator (77) -
Psych
:: Nodes :: Node (22) -
REXML
:: Parent (88) - Range (84)
- StopIteration (11)
- String (190)
- StringIO (166)
- Struct (78)
- Vector (145)
-
Zlib
:: GzipReader (66)
モジュール
- Enumerable (721)
- Find (22)
- Kernel (55)
- ObjectSpace (44)
- TSort (120)
オブジェクト
- ENV (244)
-
Readline
:: HISTORY (22)
キーワード
- % (12)
- + (6)
- << (11)
- == (6)
- ArithmeticSequence (6)
- Chain (6)
- Enumerable (11)
- Fiber (11)
- Lazy (11)
-
NEWS for Ruby 2
. 0 . 0 (11) -
NEWS for Ruby 2
. 2 . 0 (10) -
NEWS for Ruby 2
. 3 . 0 (9) -
NEWS for Ruby 2
. 4 . 0 (8) -
NEWS for Ruby 2
. 6 . 0 (6) -
NEWS for Ruby 2
. 7 . 0 (5) -
NEWS for Ruby 3
. 0 . 0 (4) -
NEWS for Ruby 3
. 1 . 0 (3) - Ruby用語集 (11)
- Yielder (11)
- ascend (22)
- begin (6)
- bsearch (44)
-
bsearch
_ index (18) - build (22)
- bytes (42)
- chain (6)
- chars (42)
- chunk (33)
-
chunk
_ while (19) - codepoints (42)
- collect (99)
- collect! (46)
- collect2 (22)
-
collect
_ concat (33) - combination (22)
- combine (14)
- compact (3)
- cycle (44)
-
delete
_ if (88) - descend (22)
- detect (22)
- downto (44)
- drop (11)
-
drop
_ while (55) - each (574)
- each2 (22)
-
each
_ byte (110) -
each
_ char (88) -
each
_ child (84) -
each
_ codepoint (88) -
each
_ cons (22) -
each
_ entry (26) -
each
_ grapheme _ cluster (14) -
each
_ index (44) -
each
_ key (44) -
each
_ line (198) -
each
_ object (44) -
each
_ pair (88) -
each
_ prime (22) -
each
_ slice (22) -
each
_ strongly _ connected _ component (40) -
each
_ strongly _ connected _ component _ from (40) -
each
_ value (44) -
each
_ with _ index (66) -
each
_ with _ object (22) - eager (5)
- end (6)
-
enum
_ for (44) -
exclude
_ end? (6) - feed (11)
- filter (66)
- filter! (36)
-
filter
_ map (15) - find (66)
-
find
_ all (33) -
find
_ index (99) - first (12)
-
flat
_ map (33) - force (11)
- foreach (88)
- grep (11)
-
grep
_ v (9) -
group
_ by (22) - gsub (77)
- gsub! (44)
- hash (6)
- index (66)
- inspect (12)
-
keep
_ if (66) - last (12)
- lazy (22)
- lines (98)
- loop (22)
- map (99)
- map! (46)
- map2 (11)
-
max
_ by (44) -
min
_ by (44) -
minmax
_ by (22) - new (35)
- next (11)
-
next
_ values (11) - optparse (11)
- partition (22)
- peek (11)
-
peek
_ values (11) - permutation (22)
- prime (11)
- produce (5)
- reject (99)
- reject! (66)
-
repeated
_ combination (22) -
repeated
_ permutation (22) - result (11)
-
reverse
_ each (44) - rewind (28)
- rindex (33)
-
ruby 1
. 9 feature (11) - select (121)
- select! (66)
- size (23)
-
slice
_ after (42) -
slice
_ before (55) -
slice
_ when (21) -
sort
_ by (22) -
sort
_ by! (22) - step (140)
- take (11)
-
take
_ while (66) - then (12)
- times (22)
-
to
_ enum (44) -
to
_ proc (5) -
transform
_ keys (17) -
transform
_ keys! (17) -
transform
_ values (16) -
transform
_ values! (16) -
tsort
_ each (40) - uniq (16)
- upto (44)
-
with
_ index (54) -
with
_ object (44) - yield (11)
-
yield
_ self (14) - zip (22)
検索結果
先頭5件
-
Enumerator (38024.0)
-
each 以外のメソッドにも Enumerable の機能を提供するためのラッパークラスです。 また、外部イテレータとしても使えます。
...を元にして定義されます。
Enumerator を介することにより String#each_byte のような
異なる名前のイテレータについても each と同様に Enumerable の機能を利用できます。
Enumerator を生成するには Enumerator.newあるいは
Object#to_enum, Objec......m_for を利用します。また、一部の
イテレータはブロックを渡さずに呼び出すと繰り返しを実行する代わりに
enumerator を生成して返します。
=== 注意
外部イテレータとしての機能は Fiber を用いて実装されているため Fiber と... -
Enumerator
. new(size=nil) {|y| . . . } -> Enumerator (21165.0) -
Enumerator オブジェクトを生成して返します。与えられたブロックは Enumerator::Yielder オブジェクトを 引数として実行されます。
...
Enumerator オブジェクトを生成して返します。与えられたブロックは Enumerator::Yielder オブジェクトを
引数として実行されます。
生成された Enumerator オブジェクトに対して each を呼ぶと、この生成時に指定されたブロックを......する Enumerator オブジェクトの要素数を指定します。
Integer、Float::INFINITY、Proc オブジェク
ト、nil のいずれかを指定します。Enumerator#size の実
行時に参照されます。
//emlist[例][ruby]{
enum = Enumerator.new{|......y|
(1..10).each{|i|
y << i if i % 5 == 0
}
}
enum.each{|i| p i }
#=> 5
# 10
fib = Enumerator.new { |y|
a = b = 1
loop {
y << a
a, b = b, a + b
}
}
p fib.take(10) #=> [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
//}... -
Enumerator
. produce(initial = nil) { |prev| . . . } -> Enumerator (21165.0) -
与えられたブロックを呼び出し続ける、停止しない Enumerator を返します。 ブロックの戻り値が、次にブロックを呼び出す時に引数として渡されます。 initial 引数が渡された場合、最初にブロックを呼び出す時にそれがブロック 呼び出しの引数として渡されます。initial が渡されなかった場合は nil が 渡されます。
...与えられたブロックを呼び出し続ける、停止しない Enumerator を返します。
ブロックの戻り値が、次にブロックを呼び出す時に引数として渡されます。
initial 引数が渡された場合、最初にブロックを呼び出す時にそれがブロ......][ruby]{
# 1, 2, 3, 4, ... と続く Enumerator
Enumerator.produce(1, &:succ)
# next を呼ぶたびランダムな数値を返す Enumerator
Enumerator.produce { rand(10) }
# ツリー構造の祖先ノードを列挙する Enumerator
ancestors = Enumerator.produce(node) { |prev| node = prev.pare......例][ruby]{
# 次の火曜日を返す例
require "date"
Enumerator.produce(Date.today, &:succ).detect(&:tuesday?)
# シンプルなレキサーの例
require "strscan"
scanner = StringScanner.new("7+38/6")
PATTERN = %r{\d+|[-/+*]}
Enumerator.produce { scanner.scan(PATTERN) }.slice_after { scanner.... -
Enumerator
. new(size=nil) {|y| . . . } -> Enumerator (21163.0) -
Enumerator オブジェクトを生成して返します。与えられたブロックは Enumerator::Yielder オブジェクトを 引数として実行されます。
...
Enumerator オブジェクトを生成して返します。与えられたブロックは Enumerator::Yielder オブジェクトを
引数として実行されます。
生成された Enumerator オブジェクトに対して each を呼ぶと、この生成時に指定されたブロックを......する Enumerator オブジェクトの要素数を指定します。
Integer、Float::INFINITY、Proc オブジェク
ト、nil のいずれかを指定します。Enumerator#size の実
行時に参照されます。
//emlist[例][ruby]{
enum = Enumerator.new{|......y|
(1..10).each{|i|
y << i if i % 5 == 0
}
}
enum.each{|i| p i }
#=> 5
# 10
fib = Enumerator.new { |y|
a = b = 1
loop {
y << a
a, b = b, a + b
}
}
p fib.take(10) #=> [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
//}... -
Enumerator
# with _ object(obj) -> Enumerator (21119.0) -
繰り返しの各要素に obj を添えてブロックを繰り返し、obj を返り値として返します。
...かった場合は、上で説明した繰り返しを実行し、
最後に obj を返す Enumerator を返します。
//emlist[例][ruby]{
# 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_obje... -
Enumerator
# +(enum) -> Enumerator :: Chain (21117.0) -
自身と enum 引数を続けて繰り返す Enumerator::Chain を返します。
...自身と enum 引数を続けて繰り返す Enumerator::Chain を返します。
//emlist[例][ruby]{
e = (1..3).each + [4, 5]
e.to_a #=> [1, 2, 3, 4, 5]
//}
@see Enumerable#chain... -
Enumerator
. new(obj , method = :each , *args) -> Enumerator (21115.0) -
オブジェクト obj について、 each の代わりに method という 名前のメソッドを使って繰り返すオブジェクトを生成して返します。 args を指定すると、 method の呼び出し時に渡されます。
...method イテレータメソッドの名前を表すシンボルまたは文字列
@param args イテレータメソッドの呼び出しに渡す任意個の引数
//emlist[例][ruby]{
str = "xyz"
enum = Enumerator.new(str, :each_byte)
p enum.map {|b| '%02x' % b } # => ["78", "79", "7a"]
//}... -
Enumerator
# with _ index(offset = 0) -> Enumerator (21113.0) -
生成時のパラメータに従って、要素にインデックスを添えて繰り返します。 インデックスは offset から始まります。
...ブロックを指定した場合の戻り値は生成時に指定したレシーバ自身です。
//emlist[例][ruby]{
str = "xyz"
enum = Enumerator.new {|y| str.each_byte {|b| y << b }}
enum.with_index {|byte, idx| p [byte, idx] }
# => [120, 0]
# [121, 1]
# [122, 2]
require......ータに従って、要素にインデックスを添えてブロックを繰り返します。
インデックスは 0 から始まります。
Enumerator#with_index は offset 引数を受け取りますが、
each_with_index は受け取りません (引数はイテレータメソッドにその... -
Enumerator
# each(*args) -> Enumerator (21107.0) -
生成時のパラメータに従ってブロックを繰り返します。 *args を渡した場合は、生成時のパラメータ内引数末尾へ *args を追加した状態で繰り返します。 ブロック付きで呼び出された場合は、 生成時に指定したイテレータの戻り値をそのまま返します。
...戻り値をそのまま返します。
@param args 末尾へ追加する引数
//emlist[例1][ruby]{
str = "Yet Another Ruby Hacker"
enum = Enumerator.new {|y| str.scan(/\w+/) {|w| y << w }}
enum.each {|word| p word } # => "Yet"
# "Another"... -
Enumerator
# peek _ values -> Array (21052.0) -
Enumerator#next_values のように「次」のオブジェクトを 配列で返しますが、列挙状態を変化させません。
...
Enumerator#next_values のように「次」のオブジェクトを
配列で返しますが、列挙状態を変化させません。
Enumerator#next, Enumerator#next_values のように
現在までの列挙状態に応じて「次」のオブジェクトを返しますが、
next と異なり......を変更しません。
列挙が既に最後へ到達している場合は、StopIteration 例外を発生します。
このメソッドは Enumerator#next_values と同様
yield
と
yield nil
を区別するために使えます。
//emlist[例][ruby]{
o = Object.new
def o.each
yield......]
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
# next _ values -> Array (21024.0) -
「次」のオブジェクトを配列で返します。
...「次」のオブジェクトを配列で返します。
Enumerator#next とほぼ同様の挙動をします。終端まで到達した場合は
StopIteration 例外を発生させます。
このメソッドは、
yield
と
yield nil
を区別するために使えます。
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
# peek -> object (21024.0) -
「次」のオブジェクトを返しますが、列挙状態を変化させません。
...「次」のオブジェクトを返しますが、列挙状態を変化させません。
Enumerator#next のように
現在までの列挙状態に応じて「次」のオブジェクトを返しますが、
next と異なり列挙状態を変更しません。
列挙が既に最後へ到達し......e = a.to_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...