首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >readLines流

readLines流
EN

Stack Overflow用户
提问于 2010-07-22 14:11:37
回答 2查看 3.8K关注 0票数 7

我试图从readLine调用中创建无限的字符串流:

代码语言:javascript
复制
import java.io.{BufferedReader, InputStreamReader}
val in = new BufferedReader(new InputStreamReader(System in))
val input: Stream[String] = Stream.cons(in readLine, input)

但是看起来readLine调用并没有被懒惰地调用。在输入该代码后,readLine立即期望输入,然后流变成相同输入的无限列表。有可能实现我心目中的目标吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-22 16:58:34

代码语言:javascript
复制
import java.io.{BufferedReader, InputStreamReader}
val in = new BufferedReader(new InputStreamReader(System in))
val input = Stream.continually(in readLine)
票数 11
EN

Stack Overflow用户

发布于 2010-07-22 14:46:19

请参阅Stream上的示例。请注意,懒惰的thunk在尾部,而不是头部。每次调用thunk时,它都应该返回下一个cons (包括下一个thunk,它应该提供下一个cons,包括...)

这是Stream.cons的签名:[http://www.scala-lang.org/docu/files/api/scala/collection/immutable/Stream](http://www.scala-lang.org/docu/files/api/scala/collection/immutable/Stream)$$cons$.html。注意作为apply的第二个参数的thunk (=>流)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3306202

复制
相关文章

相似问题

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