Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Parameter in Gos fmt.Sprintf effizient referenzieren?

Wie kann ich Parameter in Gos fmt.Sprintf effizient referenzieren?

DDD
DDDOriginal
2024-11-07 16:40:03807Durchsuche

How Can I Efficiently Reference Parameters in Go's fmt.Sprintf?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn