Kotlin序列是否缓存中间结果?

问题描述 投票:1回答:1

[当使用具有mapflatMap+等功能API的Kotlin序列进行运算时,会计算中间结果缓存,因此在进行第二次评估时没有重新计算吗?

如果不是,在某些情况下用List替换Sequence可能会导致复杂性呈指数级增长,official docs中使用的“懒惰”一词似乎不够精确,无法区分这两种行为。

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

scala kotlin stream lazy-sequences scala-streams
1个回答
0
投票

每当您在其上调用终端功能时,都会重新评估该序列。但是您可以使用toList()进行评估,以一次完成评估,并将该列表用于后续操作。

© www.soinside.com 2019 - 2024. All rights reserved.