Kotlin:可迭代<T> 来自序列<T>

Kotlin: Iterable<T> from Sequence<T>

在 Kotlin 中,如何从 Sequence<T>Stream<T> 中获取 Iterable<T>

在Java中,我可以通过以下方法获取Iterable<T>s,但等效的Kotlin代码不起作用:

final Stream<T> s = /*get Stream*/;
final Iterable<T> i1 = s::iterator;
final Iterable<T> i2 = () -> s.iterator();

由于 Kotlin 具有 first-class 函数类型,仅提供 lambda 或方法引用不足以将表达式强制转换为某些 Java 接口。但是,有一个简洁的语法来实现单一抽象方法接口:

val s: Stream<T> = /* get a stream */
val i = Iterable { s.iterator() }