Go 方法返回的 struct,是指针还是直接返回比较好?

songday · · 5627 次点击
指针和常驻有什么关系………… 比如标准库的http包 request,cookie明显不是常驻的,实际使用的时候都是指针。 本质上来说,指针和[]byte都是有特殊含义的。 指正指在内存中的一片抽象的数据,[]byte指抽象的内存空间。 返回一个具体的struct本身的花,说明你除了抽象的数据之外有别的逻辑上的目的在里面。 所以只有明确你的特殊目的才会直接返struct。 这是一个逻辑问题…… 至于我说的 “自动GC的语言了,不要过多考虑细节” 你都用runtime的自动gc了,所有的细节其实是依赖于你的runtime而不是你自己的代码了。 你考虑细节很可能随着版本的升级与你的目的背道而驰了。
#12
更多评论
凡是struct我都返回指针。 连map和slice很多时候我都会返回指针(用type自定义一个类型,比如type xxxx *[]string)。 优点是以后如果重构,基本不会调整调用方的代码。 都用自动GC的语言了,不要过多考虑细节。 细节等具体业务跑起来根据实际情况再优化。
#1
建议指针。 至少代码层面判断空值好判断
#2