İçeriğe geç

Döngüde Tekrarlanan İş (ARCH6072)

Anahtar ruby.performance.repeated-work-in-loop · Önem warning · Kategori performance

Girdileri döngü değişkenine bağlı olmayan bir hesaplama her yinelemede tekrar çalıştırılırsa boşa iş yapılır. Bu sabit ifadeyi döngünün dışına taşıyın.

def filter(items, config)
items.select do |item|
item.score > config.thresholds.fetch(:min)
end
end
def filter(items, config)
min = config.thresholds.fetch(:min)
items.select { |item| item.score > min }
end

Döngü değişmezi (loop-invariant) ifadeleri bir kez hesaplayıp döngüden önce bir değişkene atayın.