fun <T> buildIterator( builderAction: suspend SequenceBuilder<T>.() -> Unit ): Iterator<T>
Platform and version requirements: Kotlin 1.1
Builds an Iterator lazily yielding values one by one.
import kotlin.test.*
import kotlin.coroutines.experimental.buildIterator
import kotlin.coroutines.experimental.buildSequence
fun main(args: Array<String>) {
//sampleStart
val collection = listOf(1, 2, 3)
val wrappedCollection = object : AbstractCollection<Any>() {
override val size: Int = collection.size + 2
override fun iterator(): Iterator<Any> = buildIterator {
yield("first")
yieldAll(collection)
yield("last")
}
}
println(wrappedCollection) // [first, 1, 2, 3, last]
//sampleEnd
}
© 2010–2017 JetBrains s.r.o.
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.coroutines.experimental/build-iterator.html