link

Logo for Markus Rennings

Strings formatieren in Go

Da sich Go ja an die C/C++-Syntax anlehnt, folgt es auch der »printf«-Tradition, was es aber auch weniger »elegant« macht, als z.B. die String-Formatierung in Python oder JavaScript.

Um die Zeichenkette aufzubauen, gibt es verschiedene Platzhalter, welche in beiden obigen Funktionen funktionieren:

    s1 := fmt.Sprintf("Boris ist %v Jahre alt", 10)
    // Boris ist 10 Jahre alt
    s2 := fmt.Sprintf("Boris ist %v Jahre alt", "zehn")
    // Boris ist zehn Jahre alt
    s := fmt.Sprintf("Boris ist %s Jahre alt", "zehn")
    // Boris ist zehn Jahre alt
    s := fmt.Sprintf("Boris ist %d Jahre alt", 10)
    // Boris ist 10 Jahre alt
    s1 := fmt.Sprintf("Boris ist %f Jahre alt", 10.5932)
    // Boris ist 10.593200 Jahre alt
    s2 := fmt.Sprintf("Boris ist %.2f Jahre alt", 10.5932)
    // Boris ist 10.59 Jahre alt

Wenn man sich unsicher ist, welchen Option man nehmen sollte, kann man (fast) immer %v nehmen. Um Fehler während des Kompilierens schon zu erkennen und abfangen zu können, bieten sich natürlich die typspezifischen Platzhalter an. Alle Format-Optionen stehen in der offiziellen Dokumentation (engl.).