İçeriğe geç

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.

def build(names)
result = ""
names.each do |name|
result += name + ", "
end
result
end
def build(names)
names.join(", ")
end

+= yerine << ile yerinde ekleyin ya da öğeleri join ile tek seferde birleştirin.