首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过迭代生成惰性scala流

通过迭代生成惰性scala流
EN

Stack Overflow用户
提问于 2015-11-27 08:31:22
回答 2查看 184关注 0票数 0

我正在寻找一种方法来生成这种形式的scala流(相当于F#的序列):

代码语言:javascript
复制
let allRows resultSet : seq<Row> =
  seq {
    while resultSet.next() do
      yield new Row(resultSet)
  }

在scala中有什么方法可以轻松做到这一点吗?我发现涉及(非尾递归)递归的唯一方式是,对于resultSet中的大量行,这将意味着一定的堆栈溢出。

谢谢

EN

Stack Overflow用户

发布于 2015-11-27 14:53:08

假设你有这样的东西

代码语言:javascript
复制
trait ResultSet {
  def next: Boolean
}

class Row(rs: ResultSet)

您可以将您的函数定义为

代码语言:javascript
复制
def allRows(rs: ResultSet): Stream[Row] =
  Stream.continually(if (rs.next) Some(new Row(rs)) else None)
    .takeWhile(_.isDefined).map(_.get)
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33948795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档