module Steppable
Overview
Implements a #step method for iterating from a value.
Direct including types
Defined in:
steppable.crInstance Method Summary
-
#step(*, to limit = nil, by step, exclusive : Bool = false, &) : Nil
Iterates from
selfto limit incrementing by the amount of step on each iteration. -
#step(*, to limit = nil, by step, exclusive : Bool = false)
Iterates from
selfto limit incrementing by the amount of step on each iteration.
Instance Method Detail
Iterates from self to limit incrementing by the amount of step on each
iteration.
If exclusive is true, limit is excluded from the iteration.
ary = [] of Int32
1.step(to: 4, by: 2) do |x|
ary << x
end
ary # => [1, 3]
1.step(to: 4, by: 2).to_a # => [1, 3]
1.step(to: 4, by: 1).to_a # => [1, 2, 3, 4]
1.step(to: 4, by: 1, exclusive: true).to_a # => [1, 2, 3]
The type of each iterated element is typeof(self + step).
If to is nil, iteration is open ended.
The starting point (self) is always iterated as first element, with two
exceptions:
- if
selfand to don't compare (i.e.(self <=> to).nil?). Example:1.0.step(Float::NAN) - if the direction of to differs from the direction of
by. Example:1.step(to: 2, by: -1)
In those cases the iteration is empty.
Iterates from self to limit incrementing by the amount of step on each
iteration.
If exclusive is true, limit is excluded from the iteration.
ary = [] of Int32
1.step(to: 4, by: 2) do |x|
ary << x
end
ary # => [1, 3]
1.step(to: 4, by: 2).to_a # => [1, 3]
1.step(to: 4, by: 1).to_a # => [1, 2, 3, 4]
1.step(to: 4, by: 1, exclusive: true).to_a # => [1, 2, 3]
The type of each iterated element is typeof(self + step).
If to is nil, iteration is open ended.
The starting point (self) is always iterated as first element, with two
exceptions:
- if
selfand to don't compare (i.e.(self <=> to).nil?). Example:1.0.step(Float::NAN) - if the direction of to differs from the direction of
by. Example:1.step(to: 2, by: -1)
In those cases the iteration is empty.