gpt4 book ai didi

ruby - For循环...永远

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:57 29 4
gpt4 key购买 nike

我有一个 for 循环,我希望它永远递增。

我的代码:

for a in (0...Float::INFINITY).step(2)
puts a
end

输出:

0.0
2.0
4.0
Etc. Always with "#{a}.0"

有没有什么方法可以将无穷大表示为整数,从而在不对循环内容执行任何操作的情况下,输出的末尾没有 .0

附录

您能否也解释一下您的循环是如何工作的?我正在尝试找到最有效的解决方案,因为由于此循环将无限迭代,减少几毫秒将大大提高性能。

还有...

我会接受用最短时间运行到 1000000 的解决方案

根据 benchmark @Sefan 和 while 循环答案花费相同的时间Fruity while 循环答案花费的时间稍短,for 循环答案在第二位,但多个 loop do 答案花费的时间要长得多。

由于原因超出了这个问题的范围,我创建了另一个问题来解决为什么有些循环比其他循环快 (https://stackoverflow.com/questions/33088764/peddle-to-the-metal-faster-loop-faster)。

最佳答案

您可以使用 Numeric#step不超过限制:

0.step(by: 2) { |i| puts i }

输出:

0
2
4
6
...

您还可以构建自己的Enumerator:

step2 = Enumerator.new do |y|
a = 0
loop do
y << a
a += 2
end
end

step2.each { |i| puts i }

关于ruby - For循环...永远,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33081604/

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