將函數傳回值作為輸入傳遞給另一個函數
在Go 中,您可以方便地將一個函數的傳回值作為輸入參數傳遞給另一個功能。例如:
func returnIntAndString() (i int, s string) {...}
func doSomething(i int, s string) {...}
doSomething(returnIntAndString())
但是,當您將附加參數新增至第二個函數時,會出現複雜情況:
func doSomething(msg string, i int, s string) {...}
doSomething("message", returnIntAndString()) // Error
錯誤訊息表示您無法將多個傳回值傳遞給需要單一參數的函數。
解
根據Go 規範,如果另一個函數需要完全相同數量的參數,則函數只能將其傳回值作為輸入參數傳遞給另一個函數。在這種情況下,沒有傳遞額外參數的機制。
因此,要解決此問題,您有兩個選擇:
func doSomethingVariadic(msg string, args ...interface{}) {
// Code to handle variable number of arguments
}
然後您可以使用所需的參數呼叫此函數,包括 returnIntAndString() 的回傳值:
doSomethingVariadic("message", returnIntAndString())
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3