Heim > Backend-Entwicklung > Golang > Wie kann ich mit fmt.Printf() mehrere Rückgabewerte einer Go-Funktion drucken?

Wie kann ich mit fmt.Printf() mehrere Rückgabewerte einer Go-Funktion drucken?

DDD
Freigeben: 2024-12-10 13:45:16
Original
591 Leute haben es durchsucht

How Can I Print Multiple Return Values from a Go Function Using fmt.Printf()?

Übergabe mehrerer Rückgabewerte an variadische Funktionen

In Go kann eine Funktion mehrere Werte zurückgeben. Das direkte Zuweisen der Rückgabewerte einer Funktion zu einem Formatstring in einem Aufruf von fmt.Println() ist jedoch standardmäßig nicht möglich.

Ansatz mit fmt.Printf()

Um dies zu erreichen Um das gewünschte Verhalten zu erreichen, sollte fmt.Printf() anstelle von fmt.Println() verwendet werden. Allerdings ist die Übergabe zusätzlicher Parameter neben dem Funktionsaufruf durch die Spezifikation für variadische Funktionsaufrufe nicht zulässig.

Verwendung einer Wrapper-Funktion

Um diese Einschränkung zu umgehen, kann eine Wrapper-Funktion eingesetzt werden. Die Funktion „wrap()“ nimmt mehrere Werte entgegen und gibt sie als Teil von Interface{}-Werten zurück. Dadurch können wir die Rückgabewerte jeder Funktion mit mindestens einem Rückgabewert an fmt.Printf() übergeben.

Beispiel

package main

import (
    "fmt"
)

// Wrapper function to convert multiple values to a slice of interface{}
func wrap(vs ...interface{}) []interface{} {
    return vs
}

func main() {
    fmt.Printf("1: %v\n", wrap(oneInt())...)
    fmt.Printf("1: %v, 2: %v\n", wrap(twoInts())...)
    fmt.Printf("1: %v, 2: %v, 3: %v\n", wrap(threeStrings())...)
}

func oneInt() int { return 1 }

func twoInts() (int, int) { return 1, 2 }

func threeStrings() (string, string, string) { return "1", "2", "3" }
Nach dem Login kopieren

Ausgabe

1: 1
1: 1, 2: 2
1: 1, 2: 2, 3: 3
Nach dem Login kopieren

Fazit

Durch die Verwendung der Funktion wrap() ist es möglich, mehrere Rückgabewerte einer Funktion an eine variadische Funktion wie zu übergeben fmt.Printf(). Dies bietet eine einfache und bequeme Möglichkeit, die Ergebnisse eines Funktionsaufrufs zu formatieren und auszudrucken.

Das obige ist der detaillierte Inhalt vonWie kann ich mit fmt.Printf() mehrere Rückgabewerte einer Go-Funktion drucken?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage