Avatar ·

Como juntar um slice de strings em uma única string em Go?

Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema ao trabalhar com strings. Tenho um slice de strings, por exemplo:
words := []string{"Hello", "world", "from", "Go"}
Preciso juntar todas essas strings em uma só, separando-as por espaço, para obter o resultado: `"Hello world from Go"`. Em outras linguagens (como Python), eu simplesmente usaria `" ".join(words)`, mas em Go não existe esse método. Tentei escrever um loop manualmente, mas ficou complicado e não tenho certeza se é eficiente:
result := ""
for i, word := range words {
    if i > 0 {
        result += " "
    }
    result += word
}
Isso funciona, mas ouvi dizer que a concatenação de strings com `+=` em um loop pode ser lenta devido à alocação constante de memória. Existe uma maneira embutida em Go de fazer isso de forma elegante e rápida? Talvez uma função da biblioteca padrão? Agradeço exemplos de código e explicação. <<>>

Use strings.Join