partition所在位置是kotlin.sequences.partition,其相关用法介绍如下。

用法:

inline fun <T> Sequence<T>.partition(
    predicate: (T) -> Boolean
): Pair<List<T>, List<T>>

将原始序列拆分为一对列表,其中 first list 包含 predicate 产生 true 的元素,而 second list 包含 predicate 产生 false 的元素。

操作是 terminal

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
fun fibonacci(): Sequence<Int> {
    // fibonacci terms
    // 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, ...
    return generateSequence(Pair(0, 1), { Pair(it.second, it.first + it.second) }).map { it.first }
}

val (even, odd) = fibonacci().take(10).partition { it % 2 == 0 }

println(even) // [0, 2, 8, 34]
println(odd) // [1, 1, 3, 5, 13, 21]
//sampleEnd
}

输出:

[0, 2, 8, 34]
[1, 1, 3, 5, 13, 21]