Avatar ·

Comment concaténer une slice de strings en une seule chaîne en Go ?

Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai rencontré un problème en travaillant avec les strings. J'ai une slice de strings, par exemple :
words := []string{"Hello", "world", "from", "Go"}
J'ai besoin de concaténer toutes ces strings en une seule, en les séparant par un espace, pour obtenir le résultat : `"Hello world from Go"`. Dans d'autres langages (par exemple en Python), j'utiliserais simplement `" ".join(words)`, mais en Go il n'y a pas de telle méthode. J'ai essayé d'écrire une boucle manuellement, mais cela devient lourd et je ne suis pas sûr que ce soit efficace :
result := ""
for i, word := range words {
    if i > 0 {
        result += " "
    }
    result += word
}
Cela fonctionne, mais j'ai entendu dire que la concaténation de strings avec `+=` dans une boucle peut être lente à cause des allocations mémoire constantes. Existe-t-il en Go un moyen intégré de le faire de manière élégante et rapide ? Peut-être une fonction de la bibliothèque standard ? Je serais reconnaissant pour des exemples de code et une explication. <<>>

Utilisez strings.Join