Heim > Backend-Entwicklung > Golang > Wie übergebe ich mithilfe eines Slice mehrere Variablen an die Sprintf-Funktion von Go?

Wie übergebe ich mithilfe eines Slice mehrere Variablen an die Sprintf-Funktion von Go?

DDD
Freigeben: 2024-10-29 10:01:29
Original
1089 Leute haben es durchsucht

How to Pass Multiple Variables to Go's Sprintf Function Using a Slice?

Variablenparameter in Go's Sprintf für vereinfachte Eingabe

Problem:

Für diejenigen, die Bequemlichkeit bevorzugen und mehrere Variablen an übergeben Die Sprintf-Funktion kann mühsam sein. Beim Versuch, dies mit einem String-Segment zu tun, kann ein Fehler wie „v (Typ []String) kann nicht als Typ []Schnittstelle {} im Argument für fmt.Printf verwendet werden“ auftreten.

Lösung:

Um dieses Problem zu beheben, deklarieren Sie Ihr Slice als []interface{} und richten Sie es am erwarteten Argumenttyp von Sprintf aus. Die Signatur von Sprintf spezifiziert:

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

Implementierung:

<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

Erklärung:

  • []Schnittstelle {} und []string können nicht ineinander konvertiert werden.
  • Wenn Sie einen []string haben oder eine Funktion verwenden, die einen zurückgibt, konvertieren Sie ihn manuell in []interface{}, indem Sie die Elemente durchlaufen und jeden String zuweisen ein Interface{}-Element.

Ausgabe:

b    c   d
b    c   d
Nach dem Login kopieren

Zusätzliche Hinweise:

Bei Bedarf Wenn Sie mehr als 10 Parameter haben, passen Sie einfach die Anzahl der Elemente im Slice nach Bedarf an. Die Lösung bleibt dieselbe.

Das obige ist der detaillierte Inhalt vonWie übergebe ich mithilfe eines Slice mehrere Variablen an die Sprintf-Funktion von Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage