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.
- fmt.Printf()gibt die formatierte Zeichenkette auf der Standardausgabe (meist also die Konsole) aus.
- fmt.Sprintf()gibt den formatierten String zurück.
Um die Zeichenkette aufzubauen, gibt es verschiedene Platzhalter, welche in beiden obigen Funktionen funktionieren:
- %v gibt die Standardrepräsentation des Wertes zurück. Beispiel:
    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 steht für einen String
    s := fmt.Sprintf("Boris ist %s Jahre alt", "zehn")
    // Boris ist zehn Jahre alt- %d hält den Platz für einen Integer frei:
    s := fmt.Sprintf("Boris ist %d Jahre alt", 10)
    // Boris ist 10 Jahre alt- %f steht entsprechend für eine Fließkommazahl, wobei auch angegeben werden kann, wie viele Nachkommastellen angezeigt werden sollen:
    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 altWenn 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.).
