假设我有一个Thing1我想要的 struct 实例json.Marshal
type Thing1 struct {
A string `json:"a,omitempty"`
B int `json:"b,omitempty"`
C Thing2 `json:"c,omitempty"`
}
type Thing2 struct {
D bool `json:"d,omitempty"`
E int `json:"e,omitempty"`
}
...
thing1 := Thing1{
A: "test",
B: 42,
C: Thing2{D: true, E: 43},
}
您将如何编写一个函数,该函数采用任何结构的实例和要编辑的字段列表并返回传入对象的克隆(或只是变异),但将已编辑的字段设置为零值?
redact(thing1, []string{"B", "D"})
thing1 == Thing1{
A: "test",
B: 0,
C: Thing2{D: false, E: 43},
}
我不能json:"-"用作字段标签,因为我正在使用的查询语言(Dgraph)需要当前的标签。
编辑:不在示例中,但如果适用,还应编辑数组内的对象
aluckdog
相关分类