У меня есть набор строк в базе данных, и я хотел бы предоставить интерфейс для их прокрутки следующим образом:
def findAll: Iterable[MyObject]
Там, где нам не требуется иметь все экземпляры в памяти одновременно. В C # вы можете легко создавать генераторы, подобные этому, с помощью yield, компилятор заботится о преобразовании кода, который проходит через набор записей, в итератор (своего рода инвертирование).
Мой текущий код выглядит так:
def findAll: List[MyObject] = {
val rs = getRs
val values = new ListBuffer[MyObject]
while ( rs.next() )
values += new valueFromResultSet(rs)
values.toList
}
Есть ли способ, которым я мог бы преобразовать это, чтобы не хранить весь набор в памяти? Возможно, я мог бы использовать для понимания?