Actions
Feature #14084
openIntroduce Enumerator#next?
Status:
Open
Assignee:
-
Target version:
-
Description
I'd like to propose a new method for Enumerator which returns whether there will be a next value in the enumerator when calling Enumerator#next
.
It should work like this ruby demo:
class Enumerator
def next?
peek
true
rescue StopIteration
false
end
end
a = [1,2,3]
e = a.to_enum
p e.next? #=> true
p e.next #=> 1
p e.next? #=> true
p e.next #=> 2
p e.next? #=> true
p e.next #=> 3
p e.next? #=> false
p e.next #raises StopIteration
I propose the method to be called next?
as it returns either true
or false
.
I am aware that we can currently figure out if there is a next value by using rescue
(as in the code snippet above), but it is ugly since it covers many lines and uses exceptions for control flow.
Introducing the next?
method makes enumerators a little nicer to work with.
A patch with an example implementation for ruby trunk is attached (in git-diff format, any feedback welcome).
I agree that my patch will be licensed under the Ruby License.
Files
Actions
Like0
Like0Like0Like0Like0Like0Like0