Ich habe eine Reihe von Zeilen in einer Datenbank, und ich möchte eine Schnittstelle, um durch sie wie folgt zu spinnen:
def findAll: Iterable[MyObject]
Wir brauchen nicht alle Instanzen gleichzeitig im Speicher zu haben. In C# können Sie leicht Generatoren wie diese mit Yield erstellen, der Compiler kümmert sich um die Umwandlung von Code, der Schleifen durch den Datensatz in einen Iterator (eine Art Invertierung).
Mein aktueller Code sieht wie folgt aus:
def findAll: List[MyObject] = {
val rs = getRs
val values = new ListBuffer[MyObject]
while ( rs.next() )
values += new valueFromResultSet(rs)
values.toList
}
Gibt es eine Möglichkeit, dies so umzuwandeln, dass nicht der gesamte Satz im Speicher gespeichert wird? Vielleicht könnte ich ein for comprehension verwenden?