考虑以下两个 ruby 代码
示例 1
name = user.first_name
round_number = rounds.count
users.each do |u|
puts "#{name} beat #{u.first_name} in round #{round_number}"
end
示例 2
users.each do |u|
puts "#{user.first_name} beat #{u.first_name} in #{rounds.count}"
end
对于这两段代码想象
#user.rb
def first_name
name.split.first
end
因此,在算法的经典分析中,第一段代码会更有效,但是在大多数现代编译语言中,现代编译器会优化第二段代码以使其看起来像第一段,从而消除了在这种情况下优化代码的需要方式。
ruby 会在执行之前优化或缓存此代码的值吗?我的 ruby 代码应该看起来像示例 1 还是示例 2?