【发布时间】:2016-02-22 19:34:31
【问题描述】:
假设我们有一个副作用的“生产者”函数f: () => Option[T],它在重复调用时返回一个Some,直到将来它永远返回None。 (例如,在 EOF 生成 null 的封装 Java API 很可能具有这种行为)。
是否可以将此函数包装成 TraversableOnce 或 Iterator 之类的东西,并具有以下约束:
- 首选标准 Scala 库结构
- 序列可以任意长并保存所有值,例如不需要
Stream - 同样不能有堆栈溢出的可能性
- 可见的用户源代码不应使用
var - 不需要线程安全
Iterator 对象上有一些有用的方法,但没有一个与我的用例完全匹配。欢迎任何想法!
【问题讨论】: