我有一個函數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))}我用什么類型來創建參數,以便我可以傳入任何對象?obj []Obj
1 回答

波斯汪
TA貢獻1811條經驗 獲得超4個贊
泛型在 Go 中(尚不存在),但您可以使用接口類型來傳遞任何類型。
如果您從 Marshal 函數本身查看代碼,您會發現它也使用接口類型。
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 關注
- 91 瀏覽
添加回答
舉報
0/150
提交
取消