Avatar ·

Concaténation efficace de chaînes en Go : comment éviter les problèmes de performance ?

Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai rencontré un problème de performance lors de la concaténation d'un grand nombre de chaînes. Dans d'autres langages (comme Java ou C#), j'ai l'habitude d'utiliser StringBuilder pour une concaténation efficace. En Go, je vois l'opérateur `+`, mais j'ai entendu dire qu'il peut être lent avec un grand nombre d'opérations. Voici un exemple de code que j'ai écrit pour construire une chaîne CSV à partir d'un tableau de données : ```go package main import ( "fmt" "time" ) func main() { data := make([]string, 10000) for i := 0; i < 10000; i++ { data[i] = fmt.Sprintf("value_%d", i) } start := time.Now() result := "" for _, s := range data { result += s + "," } fmt.Println("Time:", time.Since(start)) fmt.Println("Length:", len(result)) } ``` Ce code fonctionne, mais je soupçonne qu'il n'est pas efficace. J'ai entendu parler du package `strings.Builder` et de `bytes.Buffer`, mais je ne comprends pas dans quels cas les utiliser. Mes questions : 1.