將函數傳回值作為輸入傳遞給另一個函數
在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 規範,一個函數只能將其傳回值作為輸入參數傳遞給另一個函數(如果後者期望確切的值)相同數量的參數。在這種情況下,沒有傳遞額外參數的機制。
因此,要解決此問題,您有兩個選擇:
<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中文網其他相關文章!