次の2つのルビーコードを検討してください
例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
したがって、アルゴリズムの古典的な分析では、最初のコードがより効率的ですが、ほとんどの最新のコンパイル言語では、最新のコンパイラは2番目のコードを最適化して最初のコードのように見せ、そのようなコードを最適化する必要をなくします。マナー。
rubyは、実行前にこのコードの値を最適化またはキャッシュしますか?私のルビーコードは例1または例2のように見えるべきですか?