美文网首页
embedded struct field override

embedded struct field override

作者: 听海吹牛逼的声音 | 来源:发表于2019-05-30 11:16 被阅读0次

    新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
    

    相关文章

      网友评论

          本文标题:embedded struct field override

          本文链接:https://www.haomeiwen.com/subject/dremtctx.html