Senior
Koje su metode spajanja nizova u Go? Koja je razlika između + i strings.Builder?
sobes.tech АИ
Одговор од АИ
U Go-u postoji nekoliko načina za konkatenaciju nizova:
- Operator
+— jednostavan i zgodan za mali broj nizova. strings.Builder— efikasan način za višestruku konkatenaciju, posebno u petljama.bytes.Buffer— sličanstrings.Builder, ali radi sa bajtovima.fmt.Sprintf— formatiranje nizova, ali manje efikasno za jednostavne konkatenacije.
Razlika između + i strings.Builder:
+kreira novi niz pri svakoj konkatenaciji, što dovodi do alokacije memorije i kopiranja podataka. Za mali broj operacija, ovo nije kritično.strings.Builderkoristi unutrašnji bafer koji se proširuje po potrebi, minimizirajući alokacije memorije i kopiranje. Ovo je znatno efikasnije kod velikog broja konkatenacija.
Primer:
var sb strings.Builder
for _, s := range parts {
sb.WriteString(s)
}
result := sb.String()
Koristite + za jednostavne slučajeve i strings.Builder za složenije ili velike konkatenacije.