gpt4 book ai didi

Scala如何获得流的最后计算值?

转载 作者:行者123 更新时间:2023-12-04 20:32:47 25 4
gpt4 key购买 nike

根据 scala docs 流实现了惰性列表,其中元素仅在需要时进行评估。例子;

val fibs: Stream[BigInt] = BigInt(0) #:: BigInt(1) #:: fibs.zip(fibs.tail).map(n => { 
n._1 + n._2
})

之后在 scala repl 中;
fibs(4)
fibs

它会打印出来;

res1: Stream[BigInt] = Stream(0, 1, 1, 2, 3, ?)

自调用 .length .last 导致无限循环,如何以最有效的方式获得值“3”(最后计算的值)?

最佳答案

你不能。这不是 Stream 的 API 的一部分.这是有原因的,因为这将使您能够观察到随时间变化的值 Stream ,这违反了 Stream 的(懒惰)不变性.

关于Scala如何获得流的最后计算值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41867748/

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