Variablenwerte in formatierten Zeichenfolgen mit Sprintf replizieren
In Go ermöglicht fmt.Sprintf() die Formatierung von Zeichenfolgen mithilfe von Platzhaltern durch die angegebenen Werte ersetzt. Während normalerweise jedem Platzhalter ein eindeutiger Wert zugewiesen wird, ist es oft wünschenswert, alle Platzhalter durch dieselbe Variable zu ersetzen.
Explizite Argumentindizierung
Um dies zu erreichen, verwendet fmt.Sprintf () verwendet eine explizite Argumentindizierung. Innerhalb der Formatzeichenfolge stellt die Platzierung von [n] vor einem Formatierungsverb sicher, dass das n-te Argument (indiziert von 1) anstelle der standardmäßigen aufsteigenden Reihenfolge formatiert wird. Ebenso gibt [n] vor einem * für Breite oder Genauigkeit das Argument an, das den angegebenen Wert enthält.
Beispielverwendung
Betrachten Sie das in der Frage bereitgestellte Beispiel:
val := "foo" s := fmt.Sprintf("%v in %v is %v", val)
Um die Variable val über alle Platzhalter hinweg zu replizieren, ändern Sie die Formatzeichenfolge wie folgt folgt:
s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val)
Dies führt zur gewünschten Ausgabe:
"foo in foo is foo"
Vereinfachte Notation
Beachten Sie, dass das erste explizite Argument index sein kann wird wie standardmäßig weggelassen 1:
s := fmt.Sprintf("%v in %[1]v is %[1]v", val)
Fazit
Durch die Nutzung der expliziten Argumentindizierung kann fmt.Sprintf() verwendet werden, um einen einzelnen Variablenwert über alle Platzhalter in einem Format zu replizieren Zeichenfolge, die eine prägnante und effiziente Lösung für bestimmte Szenarien bietet.
Das obige ist der detaillierte Inhalt vonWie kann ich eine einzelne Variable über mehrere Platzhalter in Gos fmt.Sprintf() wiederholen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!