Döngüde Dize Birleştirme (ARCH6070)
Anahtar ruby.performance.string-concat-in-loop · Önem warning · Kategori performance
Döngü içinde += ile dize biriktirmek her yinelemede yeni bir dize tahsis eder ve O(n^2) maliyet doğurur. Bunun yerine bir tampon kullanın veya join ile birleştirin.
Hatalı
Bölüm başlığı “Hatalı”def build(names) result = "" names.each do |name| result += name + ", " end resultenddef build(names) names.join(", ")endDüzeltme
Bölüm başlığı “Düzeltme”+= yerine << ile yerinde ekleyin ya da öğeleri join ile tek seferde birleştirin.