gpt4 book ai didi

scala - List.view 和 LazyList 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 16:57:24 28 4
gpt4 key购买 nike

我是 Scala 的新手,我刚刚了解到 LazyList创建是为了替换 Stream ,同时他们添加了 .view所有集合的方法。

所以,我想知道为什么 LazyList添加到 Scala 集合库,我们什么时候可以做 List.view ?

我刚刚看了Scaladoc,似乎唯一的区别是LazyList有内存功能,而 View才不是。我是对还是错?

最佳答案

Stream除了第一个(头)元素外,其他元素都是惰性实现的。这被视为一种缺陷。

一个 List View 被懒惰地重新评估,但据我所知,必须首先完全实现。

def bang :Int = {print("BANG! ");1}

LazyList.fill(4)(bang) //res0: LazyList[Int] = LazyList(<not computed>)
Stream.fill(3)(bang) //BANG! res1: Stream[Int] = Stream(1, <not computed>)
List.fill(2)(bang).view //BANG! BANG! res2: SeqView[Int] = SeqView(<not computed>)

关于scala - List.view 和 LazyList 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59587449/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com