我不明白如何在需要 Iterable 的地方传递协程。
假设我有以下功能:
fun <T> iterate(iterable: Iterable<T>) {
for (obj in iterable) {
// do something..
}
}
我要传递一个协程:
iterate( ?? {
for (obj in objects) {
yield(transform(obj))
}
})
我应该放什么而不是 ??
才能使它起作用?我尝试了 buildIterator
和 buildSequence
但它们都不起作用。
最佳答案
您可以使用 asIterable()
:
val seq = buildSequence {
for (i in 1..5) {
yield(i)
}
}.asIterable()
iterate(seq)
关于Kotlin:如何将序列(协程)作为 Iterable<T> 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47939859/