Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > generatorライブラリ > Generatorクラス
クラスの継承リスト: Generator < Enumerable < Object < Kernel
内部イテレータを外部イテレータに変えるためのクラスです。 実装に callcc を使っているので遅いです。
例:
require 'generator' # Generator from an Enumerable object g = Generator.new(['A', 'B', 'C', 'Z']) while g.next? puts g.next end # Generator from a block g = Generator.new { |g| for i in 'A'..'C' g.yield i end g.yield 'Z' } # The same result as above while g.next? puts g.next end
定義 | 説明 | |
---|---|---|
new(enum = nil) -> Generator
|
Enumerable オブジェクトかブロックから Generator オブジェクトを生成します。 |
定義 | 説明 | |
---|---|---|
current -> object
|
現在の位置にある要素を返します。next と違い位置は移動しません。 |
|
each {|e| ... } -> self
|
ジェネレータの要素を引数としてブロックを評価します。self を返します。 |
|
end? -> bool
|
次の要素がなく、ジェネレータが終わりに達しているなら真を返します。 |
|
index -> Integer
|
現在の位置を返します。 |
|
next -> object
|
現在の位置にある要素を返し、位置を1つ進めます。 |
|
next? -> bool
|
次の要素が存在するなら真を返します。 |
|
rewind -> self
|
ジェネレータを最初に巻き戻します。self を返します。 |
|
yield(val) -> self
|
val をジェネレータに渡します。 Generator.new() {|g| ... } のブロックの中でしか呼ぶことができません。 ジェネレータに渡された val は next などで取り出すことができます。 |
all?
any?
collect
count
cycle
detect
drop
drop_while
each_cons
each_slice
each_with_index
entries
find_all
find_index
first
grep
group_by
include?
inject
max
max_by
min
min_by
minmax
minmax_by
none?
one?
partition
reject
reverse_each
sort
sort_by
take
take_while
to_set
zip
==
===
=~
__id__
__send__
_dump
class
clone
dclone
display
enum_for
eql?
equal?
extend
freeze
frozen?
hash
initialize
initialize_copy
inspect
instance_eval
instance_exec
instance_of?
instance_variable_defined?
instance_variable_get
instance_variable_set
instance_variables
is_a?
marshal_dump
marshal_load
method
method_missing
methods
nil?
pretty_inspect
pretty_print
pretty_print_cycle
pretty_print_inspect
pretty_print_instance_variables
private_methods
protected_methods
public_methods
remove_instance_variable
respond_to?
singleton_method_added
singleton_method_removed
singleton_method_undefined
singleton_methods
taint
tainted?
tap
to_ary
to_hash
to_int
to_io
to_proc
to_regexp
to_s
to_str
to_yaml
to_yaml_properties
to_yaml_style
untaint