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

pon*_*tic 10 kotlin

我正在寻找类似的东西

val allInts = (1..).asSequence()
Run Code Online (Sandbox Code Playgroud)

所以我可以,例如

allInts.take(5)
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 15

val sequence = generateSequence(1) { it + 1 }
val taken = sequence.take(5);
taken.forEach { println(it) }
Run Code Online (Sandbox Code Playgroud)

但这并不是无限的:当达到Integer.MAX_VALUE时它会溢出.


Mic*_*ael 9

使用Int.MAX_VALUE作为上限.您不能有大于的整数Int.MAX_VALUE.

val allInts = (1..Int.MAX_VALUE).asSequence()
Run Code Online (Sandbox Code Playgroud)


BPS*_*BPS 6

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

generateSequence(1, Int::inc)
Run Code Online (Sandbox Code Playgroud)

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