Я не вижу использования счетчиков. В книге Дейва Томаса указано следующее:Преимущество перечислителей над коллекциями
Перечислитель позволяет вам фиксировать концепцию перечисления как объекта. Это позволяет хранить перечисления в переменных, передавать их как параметры и т. Д.
Но я также могу назначить массивы переменным, передать массивы в качестве аргументов и так далее. На самом деле, я думаю, что с помощью обычного итератора с коллекцией как массив является более кратким, чем при использовании нумератора:
str = "quick brown fox"
str.scan(/\w+/).each {|w| puts w }
quick
brown
fox
vs.
str = "quick brown fox"
enum = str.to_enum(:scan, /\w+/)
enum.each { |w| puts w }
quick
brown
fox
версия перечисления требует дополнительного шага и дает тот же результат , Когда более целесообразно использовать перечисление по коллекции с итератором?
Можете ли вы привести пример? – JohnMerlino
@JohnMerino, 'e = [1, 2, 3] .cyclep e.first (10)' – 7stud