猿问

我应该如何重用公共库中的结构,并更改关联的 json 字段

我有一个具有以下结构的共享库


//Measure struct

type Measure struct {

    Timestamp    time.Time `json:"timestamp"`

    Delta        float64   `json:"delta"`

    Redistribute float64   `json:"redistribute"`

}

现在,在我的项目中,字段没问题,但 json 信息可能会有所不同,我的意思是我可以在 json 中接收信息,而json:"value"不是json:"delta"


我应该如何超载这些值?


月关宝盒
浏览 86回答 1
1回答

www说

我应该如何超载这些值?你不应该。Go 中不存在重载。您有两个选择:嵌入类型并隐藏标签。type OtherMeasure struct {    pkg.Measure    Delta        float64   `json:"value"`}复制结构。type OtherMeasure struct {    Timestamp    time.Time `json:"timestamp"`    Delta        float64   `json:"value"`    Redistribute float64   `json:"redistribute"`}对于像这样的小结构来说,复制可能是首选,因为这样就可以进行简单的类型转换:var om OtherMeasure = /* set the specific value */var m Measure = Measure(om)
随时随地看视频慕课网APP

相关分类

Go
我要回答