ruby/ext/enumerator/enumerator.txt

103 строки
2.0 KiB
Plaintext

.\" enumerator.txt - -*- Indented-Text -*-
$Idaemons: /home/cvs/rb/enumerator/enumerator.txt,v 1.2 2001/07/15 10:19:24 knu Exp $
$RoughId: enumerator.txt,v 1.5 2003/02/20 12:24:51 knu Exp $
$Id$
** Enumerable::Enumerator(Class)
A class which provides a method `each' to be used as an Enumerable
object.
Superclass: Object
Mix-ins: Enumerable
require 'enumerator'
Class Methods:
new(obj, method = :each, *args)
Creates a new Enumerable::Enumerator object, which is to be
used as an Enumerable object using the given object's given
method with the given arguments.
e.g.:
str = "xyz"
enum = Enumerable::Enumerator.new(str, :each_byte)
a = enum.map {|b| '%02x' % b } #=> ["78", "79", "7a"]
Methods:
each {...}
Iterates the given block using the object and the method
specified in the first place.
Requiring this module also adds some methods to the Object class:
to_enum(method = :each, *args)
enum_for(method = :each, *args)
Returns Enumerable::Enumerator.new(self, method, *args).
e.g.:
str = "xyz"
enum = str.enum_for(:each_byte)
a = enum.map {|b| '%02x' % b } #=> ["78", "79", "7a"]
# protects an array from being modified
a = [1, 2, 3]
some_method(a.to_enum)
And the Enumerable module.
each_slice(n) {...}
Iterates the given block for each slice of <n> elements.
e.g.:
(1..10).each_slice(3) {|a| p a}
# outputs below
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[10]
enum_slice(n)
Returns Enumerable::Enumerator.new(self, :each_slice, n).
each_cons(n) {...}
Iterates the given block for each array of consecutive <n>
elements.
e.g.:
(1..10).each_cons(3) {|a| p a}
# outputs below
[1, 2, 3]
[2, 3, 4]
[3, 4, 5]
[4, 5, 6]
[5, 6, 7]
[6, 7, 8]
[7, 8, 9]
[8, 9, 10]
enum_cons(n)
Returns Enumerable::Enumerator.new(self, :each_cons, n).
enum_with_index
Returns Enumerable::Enumerator.new(self, :each_with_index).
-------------------------------------------------------
Local variables:
fill-column: 70
end: