Sobes.tech
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 :

  1. Opérateur + — simple et pratique pour un petit nombre de chaînes.
  2. strings.Builder — méthode efficace pour des concaténations multiples, surtout dans des boucles.
  3. bytes.Buffer — similaire à strings.Builder, mais fonctionne avec des octets.
  4. 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.Builder utilise 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.