丢弃输出的 Kotlin 序列的终端运算符?

Terminal operator for Kotlin sequence that discard the output?

我在非常大的 Kotlin 序列上运行,我在序列的每一步上执行我的逻辑,我从不需要将整个序列保存在内存中。

目前我的代码是这样的

hugeSequence
    .filter { ... } 
    .map {...... }
    .onEach {
        callExpensiveOperation(it)
    }
    .toList()  <- this feels wrong

底部的 toList()terminal 运算符,但我担心 Kotlin 可能会尝试在内存中创建一个巨大的列表,然后才意识到我什至没有分配该操作的结果值。

是否有任何其他终端操作员可以用来触发序列开始?

使用 forEach 而不是 onEach。它是 onEach.

的终端等价物
hugeSequence
    .filter { ... } 
    .map {...... }
    .forEach {
        callExpensiveOperation(it)
    }