我有一個(gè)函數(shù)func outputJsonForModel(w http.ResponseWriter, obj []Obj) { b, err := json.Marshal(obj) if err != nil { fmt.Println(err) return } w.Header().Set("Content-Type", "application/json") fmt.Fprintf(w, string(b))}我用什么類型來創(chuàng)建參數(shù),以便我可以傳入任何對象?obj []Obj
1 回答

波斯汪
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
泛型在 Go 中(尚不存在),但您可以使用接口類型來傳遞任何類型。
如果您從 Marshal 函數(shù)本身查看代碼,您會發(fā)現(xiàn)它也使用接口類型。
json.元帥
func Marshal(v interface{}) ([]byte, error) {
e := newEncodeState()
err := e.marshal(v, encOpts{escapeHTML: true})
if err != nil {
return nil, err
}
buf := append([]byte(nil), e.Bytes()...)
encodeStatePool.Put(e)
return buf, nil
}
- 1 回答
- 0 關(guān)注
- 89 瀏覽
添加回答
舉報(bào)
0/150
提交
取消