İçeriğe geç

Döngüde Tekrar Eden İş (ARCH5072)

Anahtar go.performance.repeated-work-in-loop · Önem info · Kategori performance

Döngü değişkenine bağlı olmayan bir hesaplama her yinelemede yeniden çalıştırılır. Döngü-değişmez (loop-invariant) ifadeleri döngünün dışına taşıyın.

func match(items []string, prefix string) []string {
var out []string
for _, item := range items {
if strings.HasPrefix(item, strings.ToLower(prefix)) {
out = append(out, item)
}
}
return out
}
func match(items []string, prefix string) []string {
lower := strings.ToLower(prefix)
var out []string
for _, item := range items {
if strings.HasPrefix(item, lower) {
out = append(out, item)
}
}
return out
}

Girdileri döngü değişkenine bağlı olmayan hesaplamaları döngü öncesine taşıyın.