Hallo Frank,
Die Iteratoren, als Kern der "spl", sollen ja wohl sowas wie einen standardisierten Zugriff auf eine Datenstruktur haben, unabhängig von ihrer Quelle, oder? Keine "while(get_next_line/result())" mehr, sondern nur "foreach".
Ja. Ich finde das auch nicht sonderlich schlimm, ein immer wieder verwendetes Muster des Zugriffs zu vereinheitlichen und (wie bei PHP, Python, Ruby *) dafür syntaktischen Zucker anzubieten, um dieses mehr in die Sprache einzubinden. Je weniger jedes Objekt, das auch nur irgendeine Sammlung oder gar einen nicht endenden Strom von Daten darstellt, seine eigene Zugriffsmethoden definieren muss, desto weniger Sonderfälle muss man sich merken.
* Dort gibt's das ja auch, in Python z.B. im Statement:
~~~python
for thingy in collectObj:
tuWas()
... in Ruby als Methode, der eine Lambda-Funktion übergeben wird:
~~~ruby
collectObj.each do |thingy|
tuewas thingy
end
In Java wurde das über Methoden vereinheitlicht, C# 3.0 macht derzeit ganz interessantes und erweitertes Zeug mit LINQ. So etwas findet sich in vielen Sprachen, da musst Du keine vermutete Reaktion auf RoR konstruieren. ;)
Tim