gpt4 book ai didi

scala - 用上一个元素折叠

转载 作者:行者123 更新时间:2023-12-02 09:13:36 26 4
gpt4 key购买 nike

给定val as: Seq[Int] = ...
很多时候,我需要对两个连续的元素进行操作,例如

顺便说一句,我不喜欢

for (i <- 1 until as.size) {
// do something with as(i) and as(i - 1)
}

或另一个
as.tail.foldLeft((0, as.head)) { (acc, e) =>
// do something with acc._2 and e
// and try to not forget returning (_, e)
}

如何为这种情况编写更好的代码?

最佳答案

您可以使用自己的zip对序列as进行tail:

for ((prev, curr) <- as zip as.tail) {
// do something with `prev` and `curr`
}

或者您可以使用 sliding:
for (window <- as.sliding(2)) {
val prev = window(0)
val curr = window(1)
// do something with `prev` and `curr`
}

关于scala - 用上一个元素折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49265861/

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