考虑以下结构的值之间的差异:Golang - 返回一个指针和初始化方法
type Queue struct {
Elements []int
}
会是什么之间的不同:
func NewQueue() Queue {
queue := Queue{}
return queue
}
和
func NewQueue() *Queue {
queue := &Queue{}
return queue
}
对我来说,似乎实际上是一样的,(事实上,尝试一些入队和出队的人会得到相同的结果),但我仍然看到两种用法在野外,所以也许更好。
简答:您可以返回,但我认为您通常希望返回您希望人们使用最多的表单。通常,当它是一个像'time.Time'这样的小型类型时,您会返回一个值,否则返回一个指针。在答案中说更详细的内容。 – twotwotwo