Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menghantar Berbilang Nilai Pulangan daripada Satu Fungsi kepada Fungsi yang Lain dalam Go?

Bagaimana untuk Menghantar Berbilang Nilai Pulangan daripada Satu Fungsi kepada Fungsi yang Lain dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-11-01 03:23:27793semak imbas

How to Pass Multiple Return Values from One Function to Another in Go?

Melalui Nilai Kembalikan Fungsi sebagai Input kepada Fungsi Lain

Dalam Go, anda boleh menghantar nilai pulangan satu fungsi dengan mudah sebagai argumen input kepada fungsi lain. Contohnya:

<code class="go">func returnIntAndString() (i int, s string) {...}
func doSomething(i int, s string) {...}

doSomething(returnIntAndString())</code>

Walau bagaimanapun, komplikasi timbul apabila anda menambah argumen tambahan pada fungsi kedua:

<code class="go">func doSomething(msg string, i int, s string) {...}
doSomething("message", returnIntAndString()) // Error</code>

Mesej ralat menunjukkan bahawa anda tidak boleh menghantar berbilang nilai pulangan kepada fungsi mengharapkan satu hujah.

Penyelesaian

Mengikut spesifikasi Go, fungsi hanya boleh menghantar nilai pulangannya sebagai argumen input kepada fungsi lain jika fungsi yang terakhir menjangkakan yang tepat bilangan hujah yang sama. Tiada mekanisme untuk menghantar parameter tambahan dalam senario ini.

Oleh itu, untuk menyelesaikan isu ini, anda mempunyai dua pilihan:

  1. Tetapkan Nilai Pulangan kepada Pembolehubah Asing:
  2. Anda kemudian boleh memanggil fungsi ini dengan argumen yang diingini, termasuk nilai pulangan returnIntAndString():

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Berbilang Nilai Pulangan daripada Satu Fungsi kepada Fungsi yang Lain dalam Go?. 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