Wann sollten Sie „%v' zum Drucken in Go verwenden?

DDD
Freigeben: 2024-11-26 09:09:08
Original
419 Leute haben es durchsucht

When Should You Use `%v` for Printing in Go?

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)
}
Nach dem Login kopieren

Ausgabe:

2 *2*
Nach dem Login kopieren

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:

  1. It检查接口实现:

    • reflect.Value:替换为实际值.
    • Formatter:使用自定义格式器进行格式化.
    • GoStringer(带有 #v):调用 GoStringer方法.
  2. String() 方法:如果实现 String() string,将其值转换为字符串.
  3. Error 方法:如果实现Fehler 接口,使用 Fehler 方法将其值转换为字符串.

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage