use*_*052 3 ruby arrays indexing performance ruby-on-rails
我正在使用Ruby on Rails 3.0.7,我想迭代一个对象数组(类istances),除了id等于1(id引用array [ 1]索引)的元素.
我知道我可以在if语句"内部"使用一个each语句,然后检查每个"当前"\"考虑"元素if id == 1.但是,由于数组中填充了大量数据,我想找到另一种方法,以更高效的方式完成相同的事情(避免if每次运行).
我能怎么做?
我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源.
现在,您可以执行以下操作:
def f
do_something
end
f 0
for i in 2..n
f i
end
Run Code Online (Sandbox Code Playgroud)
甚至:
def f
yield 0
for i in 2..@n
yield i
end
end
f do |i|
do_something
end
Run Code Online (Sandbox Code Playgroud)
但你可能不希望做任何类似的事情,如果你这样做,那只会在发现重要之后.
最后,假设这个丑陋的技巧实际上让你的服务器运行得更快一点.它值得吗?
| 归档时间: |
|
| 查看次数: |
7374 次 |
| 最近记录: |