Spec-Zone.ru › Kotlin 2

разбиение

kotlin-stdlib/kotlin.sequences/разбиение

Начиная с Kotlin: 1.0

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

Разбивает исходную последовательность на пару списков: первый список содержит элементы, для которых предикат вернул true, а второй список содержит элементы, для которых предикат вернул false.

Операция является терминальной.

Примеры

import kotlin.test.*

fun main() { 
   //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
}

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.sequences/partition.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API