EDIT
:我觉得这个问题不是重复的,因为所引用的问答在用例中没有描述JSON。
我有一个struct
嵌套在另一个用于JSON操作的struct
中。
在一个简单的测试用例中,using a copy为嵌套结构:
type A struct {
Foo string
Bar B
}
type B struct {
Baz string
}
func main() {
serialized := `{"foo": "some", "bar": {"baz": "thing"}}`
a := &A{}
json.Unmarshal([]byte(serialized), a)
fmt.Println(a.Foo, a.Bar.Baz)
}
> some thing
对嵌套结构产生与using a pointer相同的结果:
type A struct {
Foo string
Bar *B
}
type B struct {
Baz string
}
func main() {
serialized := `{"foo": "some", "bar": {"baz": "thing"}}`
a := &A{}
json.Unmarshal([]byte(serialized), a)
fmt.Println(a.Foo, a.Bar.Baz)
}
> some thing
我何时或不想使用指针?