Wozu dient die Enumerator-Klasse in Ruby?

Wenn ich so einen Enumertor erstelle:

enum = [1,2,3].each => #<Enumerator: [1, 2, 3]:each> 

enum ist ein Enumerator. Was ist der Zweck dieses Objekts? Ich kann das nicht sagen:

enum { |i| puts i }

Aber ich kann das sagen:

enum.each { |i| puts i }

Das scheint überflüssig, denn der Enumerator wurde mit erstellt.each. Es scheint, als würde es einige Daten in Bezug auf die speicherneach Methode.

Ich verstehe nicht, was hier los ist. Ich bin sicher, es gibt einen logischen Grund, warum wir diese Enumerator-Klasse haben, aber was kann ein Array nicht? Ich dachte, es wäre vielleicht ein Vorfahr von Array und anderen Enumerables, aber es scheint nicht so zu sein. Was genau ist der Grund für die Existenz der Enumerator-Klasse und in welchem ​​Kontext würde sie jemals verwendet werden?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage