在Golang中使用struct成员是常见的吗?

前端之家收集整理的这篇文章主要介绍了在Golang中使用struct成员是常见的吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
go github package为例.几乎每个定义的结构的每个成员都是一个指向值而不是值的指针.

这是惯用的Go吗?为什么?

我知道它减少了结构的大小(假设指针的大小小于它指向的值的大小),如果你通过值大量传递结构,这可能很重要.但是为什么不使用值结构并通过指针传递结构呢?

在github包中,原因是大多数结构都是从github api的json序列化/反序列化的.

他们使用* int而不是int的原因是因为指针的零值是nil,而int的零值是0.它允许客户端在“此字段未包含在响应中”和“值之间”之间存在差异该字段为零“.

这对于像时间这样的事情特别有用,如果你没有nilable类型,你最终会得到很多00-00-0000类型的日期.

猜你在找的Go相关文章