新struct内的在marshal时可以覆盖掉base里面的值,同时还能访问到base的。
type Base struct{
Env string `json:"env"`
}
type Derived struct {
Base
Env int `json:"env"`
Age int `json:"age"`
}
func main() {
//b := Base(env:)
d := Derived{Base:Base{Env: "hehe"}, Env: 1, Age: 2}
str, err := json.Marshal(&d)
fmt.Println(err)
fmt.Println(string(str))
fmt.Println(d.Base.Env, d.Env)
}
output:
<nil>
{"env":1,"age":2}
hehe 1
网友评论