Sobes.tech
Senior

Welche Möglichkeiten gibt es in Go, Strings zu konkatenieren? Was ist der Unterschied zwischen + und strings.Builder?

sobes.tech KI

Antwort von AI

In Go gibt es mehrere Möglichkeiten, Strings zu verketten:

  1. Operator + — einfach und bequem für eine kleine Anzahl von Strings.
  2. strings.Builder — effiziente Methode für mehrfaches Verketten, besonders in Schleifen.
  3. bytes.Buffer — ähnlich wie strings.Builder, arbeitet aber mit Bytes.
  4. fmt.Sprintf — String-Formatierung, aber weniger effizient für einfache Verkettungen.

Unterschied zwischen + und strings.Builder:

  • + erstellt bei jeder Verbindung einen neuen String, was zu Speicherzuweisungen und Datenkopien führt. Für wenige Operationen ist das nicht kritisch.
  • strings.Builder verwendet einen internen Puffer, der bei Bedarf erweitert wird, was Speicherzuweisungen und Kopien minimiert. Das ist bei vielen Verkettungsoperationen deutlich effizienter.

Beispiel:

var sb strings.Builder
for _, s := range parts {
    sb.WriteString(s)
}
result := sb.String()

Verwenden Sie + für einfache Fälle und strings.Builder für komplexe oder große Verkettungen.