Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mencetak Berbilang Nilai Pulangan daripada Fungsi Go Menggunakan fmt.Printf()?

Bagaimanakah Saya Boleh Mencetak Berbilang Nilai Pulangan daripada Fungsi Go Menggunakan fmt.Printf()?

DDD
DDDasal
2024-12-10 13:45:16587semak imbas

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

Melalukan Berbilang Nilai Pulangan kepada Fungsi Variadik

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.

Pendekatan Menggunakan fmt.Printf()

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.

Menggunakan Fungsi Pembungkus

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().

Contoh

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" }

Output

1: 1
1: 1, 2: 2
1: 1, 2: 2, 3: 3

Kesimpulan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn