String é um tipo primitivo que não pode ser alterado, você pode conciliar usando o +=
operador, mas ele cria uma nova string toda vez que você o usa.
A melhor maneira de fazer isso é usar um buffer de bytes e, em seguida, obter a string.
package main
import "fmt"
import "bytes"
func main() {
list := []string{"foo", "bar"}
var str bytes.Buffer
for _, l := range list {
str.WriteString(l)
}
fmt.Println(str.String())
}