Effiziente Referenzierung von Parametern in fmt.Sprintf
Um Zeichenfolgen in Go mit fmt.Sprintf genau zu formatieren, ist es wichtig zu verstehen, wie Argumente zugeordnet werden Verben formatieren. Standardmäßig formatiert jedes Verb das nächste verfügbare Argument und erstellt so eine sequentielle Beziehung.
Sie können jedoch die Notwendigkeit vermeiden, denselben Parameter mehrmals zu übergeben, indem Sie explizite Argumentindizes verwenden. Stellen Sie dem Formatierungsverb [n] voran, wobei n die eins indizierte Position des zu formatierenden Arguments darstellt.
Diese Technik ist besonders nützlich in Funktionen wie getTableCreationCommands. Anstatt die Variable v viermal zu übergeben, können Sie sie einmal übergeben und innerhalb der fmt.Sprintf-Zeichenfolge wie folgt referenzieren:
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 diesem Beispiel übergeben wir die Zeichenfolge s einmal und verwenden das Argument index [ 1], um innerhalb der formatierten Zeichenfolge darauf zu verweisen. Dieser Ansatz rationalisiert den Formatierungsprozess, reduziert die Codeduplizierung und verbessert die Wartbarkeit.
Hier ist ein vollständiges Beispiel:
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);
Das obige ist der detaillierte Inhalt vonWie kann ich Parameter in Gos fmt.Sprintf effizient referenzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!