Golang Format Strings verstehen
Min-jun Kim
Dev Intern · Leapcell

Key Takeaways
- Das
fmt
-Paket in Go bietet flexible Formatierung für Strings, Zahlen und Datentypen. - Formatbezeichner wie
%s
,%d
und%f
steuern die Formatierung verschiedener Datentypen. - Optionen für Breite, Präzision und Ausrichtung ermöglichen eine angepasste Ausgabeformatierung.
Golang, allgemein bekannt als Go, bietet eine leistungsstarke und flexible Möglichkeit, Strings durch sein fmt
-Paket zu formatieren. Dieses Paket bietet verschiedene Funktionen, mit denen Entwickler Strings, Zahlen und andere Datentypen auf lesbare und anpassbare Weise formatieren können.
Grundlegende String-Formatierung
Die Sprintf
-Funktion des fmt
-Pakets wird häufig zum Formatieren von Strings verwendet. Sie akzeptiert einen Formatbezeichner und entsprechende Werte und gibt den formatierten String zurück:
package main import ( "fmt" ) func main() { name := "Alice" age := 30 formattedString := fmt.Sprintf("Name: %s, Age: %d", name, age) fmt.Println(formattedString) }
Ausgabe:
Name: Alice, Age: 30
In diesem Beispiel:
%s
ist ein Platzhalter für einen String.%d
ist ein Platzhalter für eine Ganzzahl.
Häufig verwendete Formatbezeichner
Hier sind einige häufig verwendete Formatbezeichner in Go:
%v
: Standardformat für den Wert.%#v
: Go-Syntax-Darstellung des Wertes.%T
: Typ des Wertes.%%
: Ein Literal-Prozentzeichen.
Für Ganzzahlen:
%b
: Binäre Darstellung.%c
: Zeichen, das dem Unicode-Codepunkt entspricht.%d
: Dezimale Darstellung.%o
: Oktale Darstellung.%x
: Hexadezimale Darstellung (mit Kleinbuchstaben).%X
: Hexadezimale Darstellung (mit Großbuchstaben).
Für Gleitkomma- und komplexe Zahlen:
%e
: Wissenschaftliche Notation (z. B.1.23e+03
).%f
: Dezimalpunkt, aber kein Exponent (z. B.123.456
).%g
: Verwendet%e
oder%f
basierend auf der Genauigkeit des Wertes.
Breite und Präzision
Sie können die Breite und Präzision der formatierten Ausgabe steuern. Zum Beispiel:
package main import ( "fmt" ) func main() { pi := 3.141592653589793 formattedPi := fmt.Sprintf("%.2f", pi) fmt.Println(formattedPi) }
Ausgabe:
3.14
Hier formatiert %.2f
die Gleitkommazahl auf zwei Dezimalstellen.
Padding und Ausrichtung
Golang ermöglicht Padding und Ausrichtung von Zahlen und Strings:
%6d
: Füllt die Ganzzahl mit Leerzeichen auf, um sicherzustellen, dass sie mindestens 6 Zeichen breit ist.%-6d
: Richtet die Ganzzahl links innerhalb der 6-Zeichen-Breite aus.%06d
: Füllt die Ganzzahl mit Nullen auf, um sicherzustellen, dass sie mindestens 6 Zeichen breit ist.
Beispiel:
package main import ( "fmt" ) func main() { number := 42 fmt.Printf("%6d\n", number) // Rechtsbündig mit Leerzeichen fmt.Printf("%-6d\n", number) // Linksbündig fmt.Printf("%06d\n", number) // Mit Nullen aufgefüllt }
Ausgabe:
42
42
000042
Formatieren von Strings
Für Strings können Sie die Breite und Ausrichtung festlegen:
%10s
: Richtet den String rechts innerhalb einer Breite von 10 Zeichen aus.%-10s
: Richtet den String links innerhalb einer Breite von 10 Zeichen aus.
Beispiel:
package main import ( "fmt" ) func main() { str := "Go" fmt.Printf("%10s\n", str) // Rechtsbündig fmt.Printf("%-10s\n", str) // Linksbündig }
Ausgabe:
Go
Go
Fazit
Das fmt
-Paket von Golang bietet ein umfassendes Set an Tools zum Formatieren von Strings, Zahlen und anderen Datentypen. Durch das Beherrschen von Formatbezeichnern, Breite, Präzision und Ausrichtungsoptionen können Entwickler klare und gut strukturierte Ausgaben erstellen, die auf ihre spezifischen Bedürfnisse zugeschnitten sind.
FAQs
%v
gibt das Standardformat für jeden Wert aus.
Verwenden Sie %.2f
, um die Float-Zahl mit zwei Dezimalstellen zu formatieren.
Verwenden Sie %06d
, um die Ganzzahl mit Nullen aufzufüllen.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Go-Projekten.
Leapcell ist die Serverless-Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Multi-Language-Support
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- Zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 $ unterstützt 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatische CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für verwertbare Einblicke.
Mühelose Skalierbarkeit und hohe Leistung
- Auto-Skalierung zur einfachen Bewältigung hoher Parallelität.
- Null Betriebsaufwand – konzentrieren Sie sich einfach auf den Aufbau.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ