Heim > Backend-Entwicklung > Golang > Kann %v sowohl Ganzzahlen als auch Strings in Gos „fmt.Printf' drucken?

Kann %v sowohl Ganzzahlen als auch Strings in Gos „fmt.Printf' drucken?

Susan Sarandon
Freigeben: 2024-11-14 09:32:02
Original
1021 Leute haben es durchsucht

Can %v Print Both Integers and Strings in Go's `fmt.Printf`?

%v zum Drucken verschiedener Datentypen verwenden

Es kommt häufig vor, dass wir sowohl Ganzzahlen (%d) als auch drucken müssen Zeichenfolgen (%s) mit printf. Man könnte sich fragen, ob es möglich ist, %v für beide Typen zu verwenden. Obwohl dies akzeptabel ist, kann die wahllose Verwendung von %v zu unerwarteten Ergebnissen führen.

Standardformatierung von %v

fmt.Printf("%v") ist ein generisches Format Platzhalter, der den Wert im „Standard“-Format druckt, das durch Angabe von Format-Flags überschrieben werden kann. Für Ganzzahlen verwendet %v standardmäßig die Basis-10-Formatierung (%d). Allerdings greift %v für nicht-primitive Typen auf die fmt.Stringer-Schnittstelle zurück.

Betrachten Sie das folgende Beispiel:

type MyInt int

func (mi MyInt) String() string {
    return fmt.Sprint("*", int(mi), "*")
}

func main() {
    var mi MyInt = 2
    fmt.Printf("%d %v", mi, mi)
}
Nach dem Login kopieren

Ausgabe:

2 *2*
Nach dem Login kopieren

In In diesem Fall respektiert %v die Implementierung der String()-Methode in MyInt und gibt „2“ aus, wodurch der Standardwert überschrieben wird Ganzzahlformatierung.

Überlegungen

Die Verwendung von %v sowohl für Ganzzahlen als auch für Zeichenfolgen ist technisch gesehen nicht falsch. Dies kann jedoch zu einer Formatierung führen, die möglicherweise nicht in allen Situationen wünschenswert ist. Es wird empfohlen, den expliziten Formatbezeichner (%d für Ganzzahlen und %s für Zeichenfolgen) zu verwenden, um eine konsistente und vorhersehbare Formatierung sicherzustellen.

Das obige ist der detaillierte Inhalt vonKann %v sowohl Ganzzahlen als auch Strings in Gos „fmt.Printf' drucken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage