gpt4 book ai didi

kotlin - 参加 Kotlin 的序列

转载 作者:行者123 更新时间:2023-12-02 13:01:55 26 4
gpt4 key购买 nike

我试图部分消耗Kotlin中的序列,以将其拆分。

fun main() {
val seq = listOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9).asSequence()
println(seq.take(4).toList().toString());
println(seq.toList().toString())
}

输出:
[0, 1, 2, 3]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 90]

但是我所追求的是:
[0, 1, 2, 3]
[4, 5, 6, 7, 8, 90]

列出 list 仅用于演示目的。因此,创建整个序列的列表并拆分列表不是我要的答案。

最佳答案

迭代器有asSequence()函数,但它返回只能迭代一次的序列。关键是每次迭代都使用相同的迭代器。

// I don't know how to name the function...
public fun <T> Iterable<T>.asIteratorSequence(): Sequence<T> {
val iterator = this.iterator()
return Sequence { iterator }
}

fun main() {
val seq = listOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9).asIteratorSequence()

println(seq.take(4).toList().toString()) // [0, 1, 2, 3]
println(seq.toList().toString()) // [4, 5, 6, 7, 8, 9]
println(seq.toList().toString()) // []
}

关于kotlin - 参加 Kotlin 的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61861183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com