我不明白如何通过需要Iterable的Coroutine。
假设我有以下功能:
fun <T> iterate(iterable: Iterable<T>) {
for (obj in iterable) {
// do something..
}
}
我想传递一个协程:
iterate( ?? {
for (obj in objects) {
yield(transform(obj))
}
})
为了实现这一目标,我应该为了??
而不是buildIterator
而放置什么?我尝试了buildSequence
和material design calendar
,但他们都没有工作。
答案 0 :(得分:6)
您可以使用asIterable()
:
val seq = buildSequence {
for (i in 1..5) {
yield(i)
}
}.asIterable()
iterate(seq)