Vermeiden einer übermäßigen Abhängigkeit von %v beim Drucken von Variablen
Während %v eine vielseitige Möglichkeit bietet, sowohl Ganzzahlen (%d) als auch Zeichenfolgen ( %s), die ausschließliche Verwendung kann unbeabsichtigte Folgen haben.
Standardwertformatierung im Vergleich zu präzisem Typ Formatierung
%d weist das fmt-Paket explizit an, ganze Zahlen zur Basis 10 zu drucken. Im Gegensatz dazu verlässt sich %v auf die Standardformatierungsmethode, die je nach gedrucktem Typ variieren kann.
Stringer Interface Implementation Override
Wenn ein Objekt die fmt.Stringer-Schnittstelle implementiert und eine bereitstellt Wenn Sie eine benutzerdefinierte String()-Methode verwenden, priorisiert %v diese Methode gegenüber der Standardformatierung. Dies kann zu unerwarteten Ergebnissen führen, wenn Sie Ganzzahlen als Zahlen und nicht als benutzerdefinierte Zeichenfolge drucken möchten Darstellung.
Beispiel:
type MyInt int func (mi MyInt) String() string { return fmt.Sprintf("*%d*", int(mi)) } func main() { mi := MyInt(2) fmt.Printf("%d %v", mi, mi) }
Ausgabe:
2 *2*
Empfehlungen:
Das obige ist der detaillierte Inhalt vonWann sollten Sie zum Drucken von Variablen in Go %d statt %v wählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!