我在数据库中有一组行,我想提供一个接口来像这样旋转它们:
def findAll: Iterable[MyObject]
Run Code Online (Sandbox Code Playgroud)
我们不需要同时在内存中包含所有实例.在C#中,您可以使用yield轻松创建这样的生成器,编译器负责将循环通过记录集的代码转换为迭代器(将其反转).
我当前的代码如下所示:
def findAll: List[MyObject] = {
val rs = getRs
val values = new ListBuffer[MyObject]
while ( rs.next() )
values += new valueFromResultSet(rs)
values.toList
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以将其转换为不将整个集存储在内存中?也许我可以使用一个理解?