Bei der herkömmlichen Verwendung von fmt.Sprintf() werden Variablen nacheinander in die formatierte Zeichenfolge eingesetzt. Es ist jedoch möglich, eine einzelne Variable in der gesamten Zeichenfolge zu replizieren.
Durch die Verwendung von expliziten Argumentindizes kann die Formatzeichenfolge so geändert werden, dass sie mehrfach auf dasselbe Argument verweist mal:
val := "foo" s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val)
Die %[n]-Notation vor einem Formatierungsverb gibt den Index des zu verwendenden Arguments an. In diesem Fall gibt %[1] an, dass das erste Argument (val) für alle Instanzen des Platzhalters verwendet werden soll.
Ausführen des geänderten Sprintf:
fmt.Println(s)
Erzeugt:
foo in foo is foo
Effektiv wird jeder Variablenplatz in der Zeichenfolge durch den Wert von ersetzt val, was zur gewünschten Replikation führt.
Für das spezifische Szenario, in dem das erste Argument konsistent verwendet werden soll, kann der Index %[1] weggelassen werden:
fmt.Sprintf("%v in %[1]v is %[1]v", "foo")
Diese abgekürzte Syntax vereinfacht die Formatierungszeichenfolge und erreicht dennoch die gleiche Replikationsfunktionalität.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Variable in Gos fmt.Sprintf mithilfe von Argumentindizes wiederholen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!