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

如何將多個返回值作為參數傳遞給 Go 中的函數?

Mary-Kate Olsen
發布: 2024-10-31 09:51:01
原創
222 人瀏覽過

How to Pass Multiple Return Values as Arguments to Functions in Go?

返回值作為多參數函數的參數

處理傳回多個值的函數時,可以使用這些值作為輸入其他函數的參數。但是,當接收函數有附加參數時,會受到某些限制。

考慮以下程式碼:

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

func doSomething(msg string, i int, s string) {...}</code>
登入後複製

如果我們嘗試將returnIntAndString() 的回傳值直接傳遞給doSomething() :

<code class="go">doSomething("message", returnIntAndString())</code>
登入後複製

Go 會報錯:

multiple-value returnIntAndString() in single-value context
not enough arguments in call to doSomething()
登入後複製

這是因為Go 只允許將單一值作為參數傳遞給函數,即使函數的傳回值上一個函數產生多個值。

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

  1. 分配回傳值:
    分配傳回值值到臨時變數並將它們單獨傳遞給doSomething()。

    <code class="go">i, s := returnIntAndString()
    doSomething("message", i, s)</code>
    登入後複製
  2. 傳回特定值:
    在 returnIntAndString() 函數中,傳回一個具有每個值的欄位的命名結構。然後,將結構傳遞給 doSomething()。

    <code class="go">type Result struct {
       I int
       S string
    }
    
    func returnIntAndString() Result {...}
    
    res := returnIntAndString()
    doSomething("message", res.I, res.S)</code>
    登入後複製

請記住,Go 的特定規則不允許在分配參數時與多值傳回值函數一起使用其他參數。如果不滿足語言規範中概述的具體條件,您必須採用提供的解決方案之一。

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

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