【发布时间】:2017-03-27 09:41:39
【问题描述】:
考虑以下结构:
type Queue struct {
Elements []int
}
两者有什么不同:
func NewQueue() Queue {
queue := Queue{}
return queue
}
和
func NewQueue() *Queue {
queue := &Queue{}
return queue
}
对我来说,这看起来几乎是一样的,(实际上尝试使用一些入队和出队会产生相同的结果)但我仍然在野外看到这两种用法,所以也许一个更可取。
【问题讨论】:
-
简短回答:您可以返回任何一个,但我认为您通常希望返回您希望人们最常使用的表单。通常当它是像
time.Time这样的小类型时,您返回一个值,否则返回一个指针。在答案中说更详细的内容。