为什么 each
循环优于 Ruby 中的 for
循环?时间复杂度是否存在差异,或者它们只是语法上的不同?
最佳答案
是的,这是两种不同的迭代方式,但希望这个计算对您有所帮助。
require 'benchmark'
a = Array( 1..100000000 )
sum = 0
Benchmark.realtime {
a.each { |x| sum += x }
}
这需要 5.866932 秒
a = Array( 1..100000000 )
sum = 0
Benchmark.realtime {
for x in a
sum += x
end
}
这需要 6.146521 秒。
虽然这不是进行基准测试的正确方法,但也有一些其他限制。但是在一台机器上,each 似乎比 for 快一点。
关于ruby - 在 Ruby 中循环的首选方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24949412/