[英]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.