Avatar ·

Cómo unir un slice de cadenas en una sola cadena en Go?

¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema al trabajar con cadenas. Tengo un slice de cadenas, por ejemplo:
words := []string{"Hello", "world", "from", "Go"}
Necesito unir todas estas cadenas en una, separándolas con un espacio, para obtener el resultado: `"Hello world from Go"`. En otros lenguajes (por ejemplo, en Python) simplemente usaría `" ".join(words)`, pero en Go no existe ese método. Intenté escribir un bucle manualmente, pero queda engorroso y no estoy seguro de que sea eficiente:
result := ""
for i, word := range words {
    if i > 0 {
        result += " "
    }
    result += word
}
Esto funciona, pero he oído que la concatenación de cadenas con `+=` en un bucle puede ser lenta debido a la constante asignación de memoria. ¿Hay alguna forma incorporada en Go de hacer esto de manera elegante y rápida? ¿Quizás hay una función de la biblioteca estándar? Agradecería ejemplos de código y una explicación. <<>>

Usa strings.Join