ruby - 在 Ruby 中循环的首选方式是什么?

标签 ruby for-loop each

为什么 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/

相关文章:

jQuery 解析 JSON 对象和数组

ruby-on-rails - "rails new"安装不兼容的 gem

ruby-on-rails - 如何突出显示 Rails 验证错误的字段

r - 六边形网格中细胞数量的矢量化计算

r - 摆脱嵌套的(不必要的?)for 循环

javascript - jQuery .each() 超过 .wp-caption

ruby - 重构ruby方法

ruby-on-rails - 使用 Doorkeeper 使用客户端凭据在 OAuth 中发布

java - 如何在 Java 中使用循环来制作这个表 0-9?

javascript - 如果在循环内更改 DOM,则 jQuery each() 行为