Heim >Backend-Entwicklung >Golang >Wie kann ich alle Variablen in fmt.Sprintf() durch denselben Wert ersetzen?

Wie kann ich alle Variablen in fmt.Sprintf() durch denselben Wert ersetzen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-13 10:09:10327Durchsuche

How Can I Replace All Variables in fmt.Sprintf() with the Same Value?

Einzelne Variablen in Sprintf durch denselben Wert ersetzen

In fmt.Sprintf() können Argumentindizes explizit mit der Notation [n.] angegeben werden ], wodurch verschiedene Variablen an unterschiedlichen Positionen in der formatierten Zeichenfolge ersetzt werden können. Die Verwendung dieses Ansatzes zum Ersetzen aller Variablen durch denselben Wert erfordert jedoch eine geringfügige Änderung der Formatzeichenfolge.

Lösung:

Anstatt sich auf aufeinanderfolgende Argumente zu verlassen, verwenden Sie Argumentindizes in Klammern vor jedem Formatierungsverb, um anzugeben, dass dasselbe Argument verwendet werden soll:

val := "foo"
s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val)

Diese Formatzeichenfolge gibt an, dass Argumentindex 1 verwendet werden soll für alle drei Formatierungsverben, was zu Folgendem führt:

"foo in foo is foo"

Vereinfachte Optionen:

Der erste explizite Argumentindex kann weggelassen werden, da er standardmäßig 1 ist:

fmt.Printf("%v in %[1]v is %[1]v", "foo")

Zusätzlich können die Klammern und der Argumentindex zu einem einzigen zusammengefasst werden string:

fmt.Printf("%v in %1v is %1v", "foo")

Fazit:

Durch die Verwendung expliziter Argumentindizes ist es möglich, alle Variablen in fmt.Sprintf() durch denselben Wert zu ersetzen, vorausgesetzt größere Flexibilität bei der Formatierung von Zeichenfolgen.

Das obige ist der detaillierte Inhalt vonWie kann ich alle Variablen in fmt.Sprintf() durch denselben Wert ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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