Senior
Quelles sont les méthodes de concaténation de chaînes en Go ? Quelle est la différence entre + et strings.Builder ?
sobes.tech IA
Réponse de l'IA
En Go, il existe plusieurs façons de concaténer des chaînes :
- Opérateur
+— simple et pratique pour un petit nombre de chaînes. strings.Builder— méthode efficace pour des concaténations multiples, surtout dans des boucles.bytes.Buffer— similaire àstrings.Builder, mais fonctionne avec des octets.fmt.Sprintf— formatage de chaînes, mais moins efficace pour une concaténation simple.
Différence entre + et strings.Builder :
+crée une nouvelle chaîne à chaque union, ce qui entraîne une allocation mémoire et une copie des données. Pour peu d'opérations, ce n'est pas critique.strings.Builderutilise un tampon interne qui s'étend selon les besoins, minimisant les allocations mémoire et les copies. C'est beaucoup plus efficace pour un grand nombre d'opérations de concaténation.
Exemple :
var sb strings.Builder
for _, s := range parts {
sb.WriteString(s)
}
result := sb.String()
Utilisez + pour les cas simples et strings.Builder pour des concaténations complexes ou volumineuses.