Heim > Backend-Entwicklung > Golang > Wie kann ich in Go mehrere variable Parameter an Sprintf übergeben?

Wie kann ich in Go mehrere variable Parameter an Sprintf übergeben?

Mary-Kate Olsen
Freigeben: 2024-10-29 11:40:30
Original
886 Leute haben es durchsucht

How Can I Pass Multiple Variable Parameters to Sprintf in Go?

Variablenparameter an Sprintf in Go übergeben

Um die mühsame Aufgabe zu vermeiden, jede Variable einzeln in der Sprintf-Funktion anzugeben, kann man a nutzen Technik, die die Übergabe mehrerer Parameter als eine Einheit ermöglicht. Dieser Ansatz befasst sich mit Szenarien, in denen eine beträchtliche Anzahl von Parametern erforderlich ist, wie in der Frage dargestellt.

Der Schlüssel zu dieser Technik liegt in der Deklaration des Slice v als []interface{} und nicht als []string. Die Sprintf-Funktion erwartet, dass ihre Argumente vom Typ []interface{} sind, wie in ihrer Signatur angegeben:

<code class="go">func Printf(format string, a ...interface{}) (n int, err error)</code>
Nach dem Login kopieren

Durch die Konvertierung von v in []interface{} stimmt es mit der Erwartung der Funktion überein:

<code class="go">s := []interface{}{"a", "b", "c", "d"}
fmt.Printf("%5s %4s %3s\n", s[1], s[2], s[3])

v := s[1:]
fmt.Printf("%5s %4s %3s\n", v...)</code>
Nach dem Login kopieren

Dieser Ansatz generiert die gewünschte Ausgabe ohne den Fehler „v (Typ []string) kann nicht als Typ []interface {} im Argument für fmt.Printf verwendet werden.“

Während [] interface{} und []string sind nicht konvertierbar, es ist möglich, einen []string bei Bedarf manuell in []interface{} zu konvertieren:

<code class="go">ss := []string{"a", "b", "c"}
is := make([]interface{}, len(ss))
for i, v := range ss {
    is[i] = v
}</code>
Nach dem Login kopieren

Durch die Befolgung dieser Techniken können Entwickler problemlos variable Parameter übergeben zu Sprintf, was ihren Code effizienter macht und den Boilerplate reduziert, der mit der Angabe einzelner Variablen verbunden ist.

Das obige ist der detaillierte Inhalt vonWie kann ich in Go mehrere variable Parameter an Sprintf übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage