我有一个函数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 关注
- 76 浏览
添加回答
举报
0/150
提交
取消