// Created on savesnippets.com · https://savesnippets.com/SQuYTMppspOE06 package main import ( "fmt" "strings" ) func badJoin(parts []string) string { s := "" for _, p := range parts { s += p + "," // O(n²) — allocates each iteration } return s } func goodJoin(parts []string) string { var b strings.Builder b.Grow(len(parts) * 16) // optional preallocation for i, p := range parts { if i > 0 { b.WriteByte(',') } b.WriteString(p) } return b.String() } // Even simpler when you have a slice — strings.Join is built for this func bestJoin(parts []string) string { return strings.Join(parts, ",") } func main() { parts := []string{"a", "b", "c", "d"} fmt.Println(goodJoin(parts)) // a,b,c,d fmt.Println(bestJoin(parts)) // a,b,c,d }