Senior
Care sunt metodele de concatenare a șirurilor în Go? Care este diferența dintre + și strings.Builder?
sobes.tech AI
Răspuns de la AI
În Go, există mai multe moduri de a concatena șiruri de caractere:
- Operatorul
+— simplu și convenabil pentru un număr mic de șiruri. strings.Builder— metodă eficientă pentru concatenări multiple, mai ales în bucle.bytes.Buffer— similar custrings.Builder, dar funcționează cu octeți.fmt.Sprintf— formatare de șiruri, dar mai puțin eficient pentru concatenări simple.
Diferența dintre + și strings.Builder:
+creează un șir nou la fiecare concatenare, ceea ce duce la alocarea de memorie și copierea datelor. Pentru un număr mic de operații, acest lucru nu este critic.strings.Builderfolosește un tampon intern, care se extinde după nevoie, minimizând alocările de memorie și copierea. Este mult mai eficient pentru un număr mare de operații de concatenare.
Exemplu:
var sb strings.Builder
for _, s := range parts {
sb.WriteString(s)
}
result := sb.String()
Utilizați + pentru cazuri simple și strings.Builder pentru concatenări complexe sau mari.