Object 每个golang对象都从哪个对象继承?
我有一个函数Object 每个golang对象都从哪个对象继承?,object,go,Object,Go,我有一个函数 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.Fp
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
设置为什么类型,以便传入任何对象?Go中还没有泛型,但您可以使用接口类型传入任何类型
如果查看封送处理函数本身的代码,您将看到它还使用接口类型
go中没有对象,也没有继承权。哦,好吧,我现在明白为什么了,谢谢。我是新手,但对编程并不陌生。将语句
fmt.Fprintf(w,string(b))
替换为更简单、性能更高的语句w.Write(b)
。我可以想象,它会被否决,因为你甚至没有做最起码的研究来知道go没有对象或继承。这通常在任何介绍的第一节中都会涉及到。还要注意一个错误的假设,即对象必须是基类/类型固有的。虽然有些OO语言可以做到这一点,但并非所有语言都能做到。
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
}