2 回答

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個贊
使用重復(fù)的代碼創(chuàng)建一個輔助函數(shù)。將目標(biāo)值作為指針傳遞。
func decode(r *http.Repsonse, v interface{}) error {
return json.NewDecoder(res.Body).Decode(v)
}
使用指向您事物的指針調(diào)用輔助函數(shù):
var tempThing SomeTypeIveDefined
err := deocde(r, &tempThing)

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個贊
您可以使用接口執(zhí)行此操作:
func decodeResponse(r *http.Response, dest interface{}) error {
dec := json.NewDecoder(r.Body)
return dec.Decode(dest)
}
func handler(...) {
res := r.(*http.Response)
var tempThing SomeTypeIveDefined
if err:=decodeResponse(res,&tempThing); err!=nil {
// handle err
}
...
}
您不需要為結(jié)構(gòu)實(shí)現(xiàn)解組,因?yàn)?stdlib 解碼器將使用反射來設(shè)置結(jié)構(gòu)字段。
- 2 回答
- 0 關(guān)注
- 125 瀏覽
添加回答
舉報