Mehrmals auf denselben Parameter in fmt.Sprintf-Formatzeichenfolgen verweisen
Im angegebenen Codeausschnitt haben Sie eine Funktion, die SQL-Befehle generiert um Tabellen mit fmt.Sprintf zu erstellen. Während der ursprüngliche Ansatz ausführlich ist, möchten Sie für eine bessere Zeichenfolgenformatierung nur einmal auf den v-Parameter verweisen.
Laut der Dokumentation für fmt.Sprintf:
In Printf, Sprintf und Fprintf, das Standardverhalten besteht darin, dass jedes Formatierungsverb aufeinanderfolgende Argumente formatiert, die im Aufruf übergeben werden. Die Notation [n] unmittelbar vor dem Verb gibt jedoch an, dass stattdessen das nte einindizierte Argument formatiert werden soll.
Das bedeutet, dass Sie die v-Variable einmal übergeben und verwenden können [n]-Notation zur Angabe des zu formatierenden Argumentindex. Ihre aktualisierte Funktion kann beispielsweise wie folgt aussehen:
func getTableCreationCommands(v 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); `, v) }
Hier weist %[1]v den Formatierer an, das erste Argument, das v ist, zweimal zu verwenden.
Um diese Funktion zu verwenden :
import "fmt" func main() { s := "X" fmt.Println(getTableCreationCommands(s)) }
Ausgabe:
CREATE TABLE share_X PARTITION OF share FOR VALUES IN (X); CREATE TABLE nearby_X PARTITION OF nearby FOR VALUES IN (X);
Dieser Ansatz bietet eine sauberere und präzisere Möglichkeit, Ihre SQL-Befehle mit mehreren Verweisen auf denselben Parameter zu formatieren.
Das obige ist der detaillierte Inhalt vonWie kann ich in fmt.Sprintf-Formatzeichenfolgen mehrmals auf denselben Parameter verweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!