何时为JSON使用指向嵌套结构的指针?

时间:2019-04-23 14:33:11

标签: json pointers go

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

我何时或不想使用指针?

0 个答案:

没有答案