Tat*_*tat 1 ruby ruby-on-rails
下面的代码似乎做了同样的事情,但是一个有比另一个更好的性能,或者它们是相同的?谢谢.
代码1:
<% @posts.each do |post| -%>
post.doSomething
<% end -%>
Run Code Online (Sandbox Code Playgroud)
代码2:
<% for post in @posts %>
post.doSomething
<% end -%>
Run Code Online (Sandbox Code Playgroud)
广泛采用的方法是使用each.这不仅是由于更多的红宝石十岁上下,但由于在Ruby 1.8.7+ each返回一个枚举对象,它可以用来做魔术很酷的功能的东西.
另外:如有疑问,基准**
require "benchmark"
array = [*1..100_000]
Benchmark.bm(11) do |x|
x.report("for .. in") { array.each{ |i| i.succ } }
x.report("each") { for i in array; i.succ; end }
end
Run Code Online (Sandbox Code Playgroud)
**如果您发现代码中的0.00000001纳秒的性能增益是相关的,那么您可能不应该使用Ruby.
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |