scala - Kotlin 序列会缓存中间结果吗?

标签 scala kotlin stream lazy-sequences scala-streams

当使用mapflatMap+等函数式API操作Kotlin序列时,计算出的中间结果会在第二秒缓存评估有没有重新计算?

如果不是,用序列替换列表在某些情况下可能会导致复杂性呈指数级增长,并且official docs中使用了“惰性”一词。似乎不够精确来区分这两种行为。

换句话说,与 Scala 相比,Kotlin Sequence 是否更像 Scala Streams/LazyLists(其中“一旦计算,值保持计算状态并被重用。或者,正如您所说,这些值被缓存。”)或 View(其中“每次需要从中获取元素时都会重新应用所有转换”) )? (内容引用自What is the difference between view, stream and iterator? | FAQ | Scala Documentation)

最佳答案

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

关于scala - Kotlin 序列会缓存中间结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60745550/

相关文章:

scala - 推荐的 Scala io 库

javascript - 在 spring mvc 的某个时间后关闭 jquery ui 弹出窗口后必须重定向 html 页面

syntax - Scala 中符号文字的一些示例用例有哪些?

android - 使用 Dagger 2 提供一个空的 Providers 映射的 @Multibiding

kotlin - 主函数和常规函数有什么区别?

arraylist - Kotlin 将 Arraylist 拆分为多个索引的部分

html - RTMP 流式无闪存和低延迟

scala - 在 Scala Spark 中将 csv 文件作为数据帧读取时提供架构

javascript - Web Streams 和 Node.js Stream API 之间的区别

c# - 流媒体编程