繁体   English   中英

Kotlin Sequences 会缓存中间结果吗?

[英]Do Kotlin Sequences cache intermediate results?

当使用诸如mapflatMap+等功能性 API 操作 Kotlin 序列时,计算的中间结果是否被缓存,以便在第二次评估时没有重新计算?

如果没有,在某些情况下用Sequence替换List可能会导致复杂性成倍增加,官方文档中使用的“懒惰”一词似乎不够精确,无法区分这两种行为。

换句话说,与 Scala 相比,Kotlin Sequence更像是 Scala Stream s/ LazyList s(其中“一旦计算,一个值保持计算状态并被重用。或者,如你所说,这些值被缓存。”)或View s (其中“每次需要从中获取元素时都会重新应用所有转换”)? (引用内容来自视图、流和迭代器有什么区别? | 常见问题 | Scala 文档

每次在其上调用终端函数时都会重新评估该序列。 但是你可以用toList()来求值,完成一次求值,并使用列表进行后续操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM