首頁  >  文章  >  後端開發  >  如何在 Go 中將多個返回值從一個函數傳遞到另一個函數?

如何在 Go 中將多個返回值從一個函數傳遞到另一個函數?

Susan Sarandon
Susan Sarandon原創
2024-11-01 03:23:27793瀏覽

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

將函數傳回值作為輸入傳遞給另一個函數

在Go 中,您可以方便地將一個函數的回傳值作為輸入參數傳遞給另一個功能。例如:

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

doSomething(returnIntAndString())</code>

但是,當您在第二個函數中新增附加參數時,會出現複雜情況:

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

錯誤訊息表示您無法將多個傳回值傳遞給函數需要一個參數。

根據Go 規範,一個函數只能將其傳回值作為輸入參數傳遞給另一個函數(如果後者期望確切的值)相同數量的參數。在這種情況下,沒有傳遞額外參數的機制。

因此,要解決此問題,您有兩個選擇:

  1. 將回傳值指派給單獨的變數: 將returnIntAndString() 的傳回值分配給各個變量,並將它們作為參數傳遞給doSomething()。
  2. 使用接受可變參數的函數: 如果需要傳遞其他參數,您可以定義一個接受可變參數的函數,如下例所示:
<code class="go">func doSomethingVariadic(msg string, args ...interface{}) {
  // Code to handle variable number of arguments
}</code>

然後您可以使用所需的參數呼叫此函數,包括returnIntAndString() 的回傳值:

<code class="go">doSomethingVariadic("message", returnIntAndString())</code>

以上是如何在 Go 中將多個返回值從一個函數傳遞到另一個函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn