Wal*_*ang 48
流记忆和迭代器没有.您可以多次遍历同一个Stream并且每次都获得相同的结果.另一方面,迭代器只能遍历一次.
ron*_*ron 21
它们都是用于访问当前元素的构造,具有尚未知的剩余元素列表(惰性尾部).
Iterator 是一个命令式的构造,你只能遍历一次.
Stream是一种功能性结构.从理论上讲,你可以多次遍历它(正如其他人提到的那样,它不会重新计算已经计算过的部分),但实际上因为Streams要么无限大,要么非常大(这就是你首先使用它的原因),持有对完整流的引用没有多大意义(你很容易遇到Out Of Memory).
def并且永远不要将其放入具有长期范围的局部变量中.Stream并不是懒惰的,就像它一样
一般来说,避免平常更安全Stream.替代方案是使用EphemeralStreamScalaz,它使用弱引用自动忘记未推荐的部分,或使用Iteratees(也见此处)或类似的东西.
| 归档时间: |
|
| 查看次数: |
9397 次 |
| 最近记录: |