我寫了一些奇怪的代碼,但我不知道它爲什麼可行,我可以從中學到什麼。我從另一個結構中創建了一個切片類型。我在切片類型上做了一個函數來修改它自己。爲了做到這一點,我似乎不得不多加註意*。這些指針發生了什麼?
我想了解Go中的指針並希望有一點幫助。下面是一個例子(http://play.golang.org/p/roU3MEeT3q):
var ClientNames = []string {"Client A", "Client B", "ClientC"}
type InvoiceSummaries []InvoiceSummary
type InvoiceSummary struct {
Client string
Amt int
}
func (summaries *InvoiceSummaries) BuildFromAbove() {
for _, name := range ClientNames {
*summaries = append(*summaries, InvoiceSummary{name, 100})
}
}
我的問題是:什麼是目的,對於這些*和爲什麼我沒有使用任何&?
注意,這個問題是不是經常看到,因爲大多數用戶類型往往是結構。當您通過選擇器訪問結構域時,該值會自動爲您解除引用。 – JimB