Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mencetak Berbilang Nilai Pulangan daripada Fungsi Go Menggunakan fmt.Printf()?
Dalam Go, fungsi boleh mengembalikan berbilang nilai. Walau bagaimanapun, memberikan secara langsung nilai pulangan fungsi kepada rentetan format dalam panggilan ke fmt.Println() tidak boleh dilakukan secara lalai.
Untuk mencapai tingkah laku yang diingini, fmt.Printf() hendaklah digunakan dan bukannya fmt.Println(). Walau bagaimanapun, menghantar parameter tambahan selain panggilan fungsi tidak dibenarkan oleh spesifikasi untuk panggilan fungsi variadik.
Untuk memintas sekatan ini, fungsi pembungkus boleh digunakan. Fungsi wrap() mengambil berbilang nilai dan mengembalikannya sebagai sekeping nilai antara muka{}. Ini membolehkan kami menghantar nilai pulangan mana-mana fungsi dengan sekurang-kurangnya satu nilai pulangan kepada fmt.Printf().
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" }
1: 1 1: 1, 2: 2 1: 1, 2: 2, 3: 3
Dengan menggunakan fungsi wrap(), adalah mungkin untuk menghantar berbilang nilai pulangan fungsi kepada variadic berfungsi seperti fmt.Printf(). Ini menyediakan cara yang mudah dan mudah untuk memformat dan mencetak hasil panggilan fungsi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencetak Berbilang Nilai Pulangan daripada Fungsi Go Menggunakan fmt.Printf()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!