1

如何使用下一个值作为集合的 zipWithNext 运算符压缩流?

zipWithNext 的行为类似于:

val letters = ('a'..'f').toList()
val pairs = letters.zipWithNext()

println(letters) // [a, b, c, d, e, f]
println(pairs) // [(a, b), (b, c), (c, d), (d, e), (e, f)]

但在我的情况下,字母是:

val letters = flowOf('a'..'f')

奖励积分:

flowOf(1, 2, 3).scan(emptyList<Int>()) { acc, value -> acc + value }.toList()我在https://play.kotlinlang.org/上试过,但没有找到flowOf什么导入,否则我在那里失踪了?

4

1 回答 1

0

一种可能的解决方案是:

val letters = ('a'..'f').toList().toTypedArray()
val lettersFlow = flowOf(*letters)
val result = lettersFlow.scan(Pair<Char, Char>('a','a')) { acc, value -> Pair(acc.second, value) }.drop(2).toList()
println(result)
于 2020-07-06T17:51:21.997 回答