3
我想調用一個可變參數函數並動態地組成參數。以fmt.Printf()
爲例。如果我有一個struct
:golang:variadic函數參數的動態組合
type Foo struct {
a int
b string
}
我想打電話fmt.Printf(foo.a, foo.b).
但是,如果我有另一個Bar struct
有3場,我想打電話給fmt.Printf(bar.a, bar.b, bar.c)
。
所以我想寫這樣的功能:
func MyPrint(obj interface{})
,並能夠與MyPrint(foo)
或MyPrint(bar)
和代碼來調用它會自動計算出該foo
有2場,做:
...
fmt.Printf(foo.a, foo.b)
bar
有3個領域,並做
...
fmt.Printf(bar.a, bar.b, bar.c)
在Python中,您可以執行類似call(*list)
的操作。我如何在Go中實現這一點?
,你想創建一個接受任何種類結構的功能?如果那麼簡單使用''''interface'' –
@GujaratSantana是的。但func(params ... interface {}' – lang2
'''interface''不能被''interface'接受''func boo(params ... interface {}){}'似乎解決了你的問題問題。 – Rodrigo