Spec-Zone.ru › Kotlin 1.7

SequenceScope

kotlin-stdlib / kotlin.sequences / SequenceScope
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)
abstract class SequenceScope<in T>

Область для выдачи значений из Sequence или Iterator, предоставляет приостановленные функции yield и yieldAll.

import kotlin.test.*

fun main(args: Array<String>) {
//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
}
import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
fun fibonacci() = sequence {
    var terms = Pair(0, 1)

    // this sequence is infinite
    while (true) {
        yield(terms.first)
        terms = Pair(terms.second, terms.first + terms.second)
    }
}

println(fibonacci().take(10).toList()) // [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
//sampleEnd
}

См. также

sequence

iterator

Функции

Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)

yield

Выдает значение в Iterator, который строится, и приостанавливается до запроса следующего значения.

abstract suspend fun yield(value: T)
Требования к платформе и версии: JVM (1.0), JS (1.0), Native (1.0)

yieldAll

Выдает все значения из iterator в Iterator, который строится, и приостанавливается до того, как все эти значения будут перебраны, и будет запрошено следующее.

abstract suspend fun yieldAll(iterator: Iterator<T>)

Выдает коллекцию значений в Iterator, который строится, и приостанавливается до тех пор, пока все эти значения не будут перебраны, и будет запрошено следующее.

suspend fun yieldAll(elements: Iterable<T>)

Выдает потенциально бесконечную последовательность значений в Iterator, который строится, и приостанавливается до тех пор, пока все эти значения не будут перебраны, и будет запрошено следующее.

suspend fun yieldAll(sequence: Sequence<T>)

© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.sequences/-sequence-scope/index.html

Spec-Zone.ru

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