Verwendung von %v zum Drucken: Mögliche zu berücksichtigende Probleme
Während das %v-Verb das Drucken sowohl von Ganzzahlen (%d) als auch von Zeichenfolgen ermöglicht (%s), seine Verwendung sollte mit Vorsicht erfolgen, um unbeabsichtigte Formatierungsprobleme zu vermeiden.
Standardformat vs. Spezifisch Format
Im Gegensatz zum %d-Verb, das das fmt-Paket anweist, den Wert als Zahl (mit Basis 10) auszugeben, verwendet das %v-Verb das Standardformat. Dieses Standardformat kann überschrieben werden, indem Sie die fmt.Stringer-Schnittstelle (mit einer String()-String-Methode) für Ihren benutzerdefinierten Typ implementieren.
Beispiel
Bedenken Sie den folgenden Code Verwenden eines benutzerdefinierten Typs MyInt, der fmt.Stringer implementiert Schnittstelle:
type MyInt int func (mi MyInt) String() string { return fmt.Sprintf("*%d*", int(mi)) } func main() { var mi MyInt = 2 fmt.Printf("%d %v", mi, mi) }
Ausgabe:
2 *2*
Bei Verwendung von %v prüft das fmt-Paket, ob der Wert fmt.Stringer implementiert und ruft dessen String() auf Verfahren. Dies führt dazu, dass der Wert mit dem überschriebenen Format angezeigt wird („2“ statt „2“).
Formatierungsregeln
Die fmt Bei der Verwendung des Pakets gelten bestimmte Formatierungsregeln %v:
It检查接口实现:
Fazit
Während es technisch möglich ist, immer %v zum Drucken zu verwenden, ist dies im Allgemeinen der Fall Es wird empfohlen, bestimmte Verben wie zu verwenden %d und %s für Ganzzahlen und Zeichenfolgen. Die Verwendung von %v kann zu unerwartetem Formatierungsverhalten führen, wenn Ihre Typen bestimmte Schnittstellen implementieren, insbesondere fmt.Stringer.
Das obige ist der detaillierte Inhalt vonWann sollten Sie „%v' zum Drucken in Go verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!