繁体   English   中英

如何在 Kotlin 中创建一个无限长的序列

[英]How to create an infinitely long sequence in Kotlin

我正在寻找类似的东西

val allInts = (1..).asSequence()

所以我可以,例如

allInts.take(5)
val sequence = generateSequence(1) { it + 1 }
val taken = sequence.take(5);
taken.forEach { println(it) }

然而,这并不是无限的:当达到 Integer.MAX_VALUE 时它会溢出。

如果您需要无限序列,则应使用新的sequence函数:

val sequence = sequence {
  while (true) {
    yield(someValue())
  }
}

上一个答案

使用Int.MAX_VALUE作为上限。 整数不能大于Int.MAX_VALUE

val allInts = (1..Int.MAX_VALUE).asSequence()

JB 的回答很好,但你也可以选择

generateSequence(1, Int::inc)

如果你喜欢整个简洁的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM