首頁 > 後端開發 > Golang > 主體

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

Susan Sarandon
發布: 2024-11-01 03:23:27
原創
793 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!