考慮以下結構的值之間的差異:Golang - 返回一個指針和初始化方法
type Queue struct {
Elements []int
}
會是什麼之間的不同:
func NewQueue() Queue {
queue := Queue{}
return queue
}
和
func NewQueue() *Queue {
queue := &Queue{}
return queue
}
對我來說,似乎實際上是一樣的,(事實上,嘗試一些入隊和出隊的人會得到相同的結果),但我仍然看到兩種用法在野外,所以也許更好。
簡答:您可以返回,但我認爲您通常希望返回您希望人們使用最多的表單。通常,當它是一個像'time.Time'這樣的小型類型時,您會返回一個值,否則返回一個指針。在答案中說更詳細的內容。 – twotwotwo