duanping1920 2018-06-28 17:05
浏览 1007

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

I've been looking in many, many places and I couldn't find any satisfying answer for my question: what is the benefit of using pointers to nested structs in Go?

Currently I am total newbie in Go, I started reading a book "Go programming language" and I do every excerice there to make sure I understand the syntax and use case. Until now. The goal of one of tasks was to create very simple GitHub client that retrieves a list of issues filtered by given params. It's an example showing how to use json unmarshalling. So there are some nested structs:

type SearchIssueResult {
    TotalCount int
    Issues []*Issue
}

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

And here's my question again: Why these nested structs have type of pointers to structs? I can use just struct type and it works as well (with slight modifications in usage of struct's instance) but I would like to understand when to use different approaches.

Thanks!

  • 写回答

1条回答 默认 最新

  • douxiduan8344 2018-06-28 17:34
    关注

    It depends on how complex your structure is. I'd suggest using pointers every time you refer to a structure. Here are some benefits of this approach:

    1. Referred object can live longer than your structure.
    2. It's faster to make a copy of a pointer than a copy of (complex) structure.

    For some basic types like: int, float, string it can be faster to pass it by copy.

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器