Tag: 尾巴

如何修改Kotlin序列的前缀,但保留尾巴?

Kotlin提供了takeWhile方法,让一个Sequence<T>前n项目分别作为另一个序列来处理,例如drop其中的一些, map到其他值等。 但是当我使用take和takeWhile ,序列的尾部被丢弃。 现在,给定一个一次受约束的序列,如何保留尾部,如何保留它的任意前缀到另一个序列? 例: val seq = (1..10).asSequence().constrainOnce() // emits 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 val modified = seq.changePrefix { take(5).map { -1 * it } } // emits -1, -2, -3, -4, -5, 6, 7, 8, 9, 10 我如何做同样的多个前缀? 例: val seq = (1..10).asSequence().constrainOnce() val modified = […]