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 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数