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