yield All
Начиная с Kotlin: 1.3
abstract suspend fun yieldAll(iterator: Iterator<T>)
Выдаёт все значения из iterator в создаваемый Iterator и приостанавливается, пока все эти значения не будут перебраны и не будет запрошено следующее значение.
Последовательность значений, возвращаемых заданным итератором, потенциально может быть бесконечной.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
val sequence = sequence {
val start = 0
// yielding a single value
yield(start)
// yielding an iterable
yieldAll(1..5 step 2)
// yielding an infinite sequence
yieldAll(generateSequence(8) { it * 3 })
}
println(sequence.take(7).toList()) // [0, 1, 3, 5, 8, 24, 72]
//sampleEnd
}
suspend fun yieldAll(elements: Iterable<T>)
Выдаёт коллекцию значений в создаваемый Iterator и приостанавливается, пока все эти значения не будут перебраны и не будет запрошено следующее значение.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
val sequence = sequence {
val start = 0
// yielding a single value
yield(start)
// yielding an iterable
yieldAll(1..5 step 2)
// yielding an infinite sequence
yieldAll(generateSequence(8) { it * 3 })
}
println(sequence.take(7).toList()) // [0, 1, 3, 5, 8, 24, 72]
//sampleEnd
}
suspend fun yieldAll(sequence: Sequence<T>)
Выдаёт потенциально бесконечную последовательность значений в создаваемый Iterator и приостанавливается, пока все эти значения не будут перебраны и не будет запрошено следующее значение.
Последовательность потенциально может быть бесконечной.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
val sequence = sequence {
val start = 0
// yielding a single value
yield(start)
// yielding an iterable
yieldAll(1..5 step 2)
// yielding an infinite sequence
yieldAll(generateSequence(8) { it * 3 })
}
println(sequence.take(7).toList()) // [0, 1, 3, 5, 8, 24, 72]
//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/-sequence-scope/yield-all.html