Scala 中的 LazyList 和 List 有什么区别?

Din*_*dan 3 scala scala-collections

什么是以下集合类型之间的差异斯卡拉ListLazyList类型?

Din*_*dan 5

LazyListScala 标准库 2.13.1 中引入的新类型。

  • 它的类型是不可变的,它被放入scala.collection.immutable包中。常见List类型之间的主要区别在于, 的元素LazyList是惰性计算的,因此只计算那些被请求的元素。通过这种方式,一个惰性列表可以有无限多个元素。
  • 在性能方面,这两种类型 (LazyListList) 具有可比性。
  • ALazyList由一个与特定于List类型 ( ::),的运算符具有相似外观的运算符构造而成#::
  • 懒惰, aLazyList不能StackOverFlowError在递归循环中产生 a ,就像一个老人List可以做的那样。