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

标签 pointers go struct unmarshalling

我找了很多很多地方,但我找不到任何令人满意的答案来回答我的问题:在 Go 中使用指向嵌套结构的指针有什么好处?

目前我完全是 Go 的新手,我开始阅读一本名为“Go 编程语言”的书,并在那里进行所有练习以确保我理解语法和用例。到目前为止。其中一项任务的目标是创建非常简单的 GitHub 客户端,该客户端检索由给定参数过滤的问题列表。这是一个展示如何使用 json 解码 的示例。所以有一些嵌套结构:

type SearchIssueResult {
    TotalCount int
    Issues []*Issue
}

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

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

谢谢!

最佳答案

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

  1. 引用的对象可以比您的结构存在的时间更长。
  2. 复制指针比复制(复杂)结构更快。

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

关于pointers - 在 golang 的嵌套结构中使用指针的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51088202/

相关文章:

c++ - 如何将 void (myClass::*)() 转换为 void (*)()

c - 获取指针数据的大小

linux - 将端口转换为 :port of type string in Golang

reactjs - AWS ELB 为 https ://domain_name:8000 but accessible via public_ip:8000 返回 404

c - 在给定字段偏移量的情况下确定结构的字段

c++ - 删除动态数组的一部分并增加其他部分

c++ - 段列表迭代器错误 C++

elasticsearch - 将日志从 Kafka 发送到 Elasticsearch 的最快方法

c - 未定义的 C 结构前向声明

c - C 结构/union 的可移植性问题