inline fun <T> Iterable( crossinline iterator: () -> Iterator<T> ): Iterable<T>
Given an iterator function constructs an Iterable instance that returns values through the Iterator provided by that function.
fun main(args: Array<String>) {
//sampleStart
val iterable = Iterable {
iterator {
yield(42)
yieldAll(1..5 step 2)
}
}
val result = iterable.mapIndexed { index, value -> "$index: $value" }
println(result) // [0: 42, 1: 1, 2: 3, 3: 5]
// can be iterated many times
repeat(2) {
val sum = iterable.sum()
println(sum) // 51
}
//sampleEnd
}
© 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.collections/-iterable.html