Mehrfaches Referenzieren von Parametern in fmt.Sprintf-Formatzeichenfolgen
In Ihrem Code haben Sie eine Funktion, die Tabellenerstellungsbefehle mit fmt erstellt. Sprintf. Sie möchten vermeiden, denselben Parameter mehrmals zu übergeben.
Lösung mit expliziter Argumentindizierung
Gemäß der Dokumentation für fmt.Printf und verwandte Funktionen können Sie explizit verwenden Argumentindizes zum Formatieren des n-ten Arguments:
func getTableCreationCommands(s string) string { return fmt.Sprintf(` CREATE TABLE share_%[1]v PARTITION OF share FOR VALUES IN (%[1]v); CREATE TABLE nearby_%[1]v PARTITION OF nearby FOR VALUES IN (%[1]v); `, s) }
In der Formatzeichenfolge bezieht sich %[1]v auf das erste Argument, s.
Beispiel
Hier ist ein Beispiel für diesen Ansatz:
package main import "fmt" func getTableCreationCommands(s string) string { return fmt.Sprintf(` CREATE TABLE share_%[1]v PARTITION OF share FOR VALUES IN (%[1]v); CREATE TABLE nearby_%[1]v PARTITION OF nearby FOR VALUES IN (%[1]v); `, s) } func main() { fmt.Println(getTableCreationCommands("X")) }
Ausgabe:
CREATE TABLE share_X PARTITION OF share FOR VALUES IN (X); CREATE TABLE nearby_X PARTITION OF nearby FOR VALUES IN (X);
Durch die Verwendung expliziter Argumentindizes können Sie mehrmals auf denselben Parameter verweisen, ohne ihn separat zu übergeben.
Das obige ist der detaillierte Inhalt vonWie kann ich in fmt.Sprintf-Formatzeichenfolgen mehrmals auf Parameter verweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!