將多個回傳值傳遞給可變參數函數
問題:
問題:
問題:
- 問題:
-
- 問題:
問題:
func wrap(vs ...interface{}) []interface{} {
return vs
}
func twoInts() (int, int) {
return 1, 2
}
func main() {
fmt.Printf("first= %d and second = %d", wrap(twoInts()...)...)
}
登入後複製
問題:
你有機會傳回兩個整數並希望在fmt.Println() 中使用字串格式列印這兩個值的函數稱呼。然而,Go 預設不支援這種方法。 解:雖然你不能直接將多個回傳值傳遞給fmt.Println(),但你可以使用一個技巧來實作與fmt. Printf() 相同的結果:建立一個實用函數, wrap(),它接受可變數量的輸入並返回[]interface{} 的切片。 使用函數的回傳值呼叫wrapp(),並將它們作為單獨的參數傳遞。 將結果切片傳遞給fmt.Printf() 作為可變參數的值....這是一個範例:此方法可讓您將多個返回值傳遞給可變參數函數,使您能夠在fmt.Printf() 中使用字串格式列印它們。 注意:fmt.Println() 仍然可以與至少傳回一個的函數一起使用值,因為它會自動將多餘的回傳值分配給其可變參數。 wrap() 實用函數可以泛化為處理具有任意數量回傳值的函數。 有關更多見解,請參閱有關單值上下文中的多個值以及在 Go 函數中傳回類似映射的「ok」值的相關問題。
以上是如何在 Go 中將多個返回值傳遞給可變參數函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!