Cara Menggunakan Nilai Pulangan Satu Fungsi sebagai Input Argumen kepada Yang Lain
Masalah:
Pertimbangkan dua fungsi, returnIntAndString dan doSomething. returnIntAndString mengembalikan dua nilai, integer dan rentetan, manakala doSomething mengambil tiga argumen: rentetan, integer dan rentetan lain.
Apabila memanggil doSomething dengan nilai pulangan returnIntAndString sebagai argumen, ralat berikut berlaku:
main.go:45: multiple-value returnIntAndString() in single-value context main.go:45: not enough arguments in call to doSomething()
Jawapan:
Menurut spesifikasi Go, panggilan fungsi boleh mengikat nilai pulangan fungsi lain kepada parameter fungsi yang dipanggil hanya jika:
Dalam kes ini, returnIntAndString mengembalikan dua nilai, tetapi doSomething memerlukan hujah ketiga. Oleh itu, doa terus ini tidak dibenarkan.
Alternatif:
Terdapat dua penyelesaian alternatif:
Buat struct yang memegang nilai pulangan returnIntAndString dan hantarkan contoh struct itu kepada doSomething.
<code class="go">type ReturnValues struct { I int S string } func returnIntAndString() ReturnValues { return ReturnValues{42, "Hello"} } func doSomething(msg string, values ReturnValues) { // Use values.I and values.S as needed } doSomething("Message", returnIntAndString())</code>
Tetapkan nilai pulangan returnIntAndString kepada pembolehubah yang dinamakan dan hantar pembolehubah tersebut kepada doSomething.
<code class="go">var i, s = returnIntAndString() doSomething("Message", i, s)</code>
Atas ialah kandungan terperinci Bagaimana untuk Meluluskan Berbilang Nilai Pulangan sebagai Argumen kepada Fungsi Lain dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!