我有一個函式,callAPI,帶有回傳型別interface{}。
我有一個結構體,Company我想在其中Unmarshal()從callAPI().
我應該callAPI()回傳一個Company{}嗎?
或者,我應該有callAPI()return []byte,然后Unmarshal()變成 a Company?
或者,有沒有另一種方法來完成我想要實作的目標?
uj5u.com熱心網友回復:
將指向目標值的指標作為引數傳遞。將指標值傳遞給 json.Unmarshal:
func callAPI(a1 T1, a2 T2, v interface{}) error {
// use a1, a2, ... to get API response []byte, p
return json.Unmarshal(p, v)
}
像這樣呼叫它:
var c Company
err := callAPI(a1, a2, &c)
if err != nil {
// handle error
}
// Use company.
替換占位符a1,a2,T1并T2與任何引數是適合您的功能。
在操場上運行一個例子。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/352555.html
標籤:走
下一篇:如何將結構轉換為路徑的平面陣列?
