在golang的嵌套结构中使用指针的好处

时间:2018-06-28 17:05:32

标签: pointers go struct unmarshalling

我到过很多地方,但找不到一个令人满意的答案:在Go中使用指向嵌套结构的指针有什么好处?

目前,我是Go的新手,我开始阅读《 Go编程语言》一书,并在其中进行了所有练习,以确保我了解语法和用例。到现在。任务之一的目标是创建一个非常简单的GitHub客户端,该客户端检索由给定参数过滤的问题列表。该示例显示了如何使用 json解组。因此,有一些嵌套结构:

type SearchIssueResult {
    TotalCount int
    Issues []*Issue
}

type Issue {
    Title string
    Author *User
    // ... other properties
}

这又是我的问题:为什么这些嵌套的结构体具有指向结构体的指针类型?我可以只使用结构体类型并且它也可以正常工作(在使用结构体实例时稍作修改),但是我想了解何时使用不同的方法。

谢谢!

1 个答案:

答案 0 :(得分:-1)

这取决于您的结构有多复杂。我建议您每次引用结构时都使用指针。这是这种方法的一些优点:

  1. 引用的对象的生存期可能超过您的结构。
  2. 创建指针的副本比(复杂)结构的副本要快。

对于某些基本类型,例如int,float,string,通过复制传递它会更快。