我正在寻找一个类似于 fold
的函数,它不仅返回最终结果,还返回所有中间结果。
例如,使用 fold
我可以实现以下示例:
val res = listOf(1,2,3).fold(0, { acc, it -> f(acc, it) })
// res = 6
但我正在寻找类似的东西......
val res = listOf(1,2,3).foo(0, { acc, it -> f(acc, it) })
// res = listOf(1,3,6)
...然后将返回中间结果,而不仅仅是最终总和。
Kotlins stdlib 中是否已包含类似 foo
的函数,或者函数式编程风格中此 foo
的通用名称是什么?
最佳答案
您正在寻找名为 scan
的函数运算符。
从 Kotlin 1.4 开始,扫描
为 present in the standard library .
关于kotlin - 折叠返回中间结果而不仅仅是最后一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50563817/