2
所以,我想要習慣去!並且我遇到了一個問題,我嘗試製作一個包含切片的新數據類型「RandomType」。切片:添加到結構中的切片的問題
package main
type RandomType struct {
RandomSlice []int
}
func main() {
r := new(RandomType)
r.RandomSlice = make([]int, 0)
append(r.RandomSlice, 5)
}
這段代碼產生錯誤:
append(r.RandomSlice, 5) not used
但是例如,如果我試圖用
type RandomType struct {
RandomInt int
}
func main() {
r := new(RandomType)
r.RandomInt = 5
}
能正常工作。
不知道我在做什麼錯。
有時候,並不總是,'append'會分配一個新的分片。 「如果s的容量不足以適應附加值,那麼append會分配一個新的足夠大的分片,以適應現有分片元素和附加值。因此,返回的分片可能指向不同的基礎數組「。 – peterSO
@peterSO是的,但我不確定你爲什麼這樣說:底層數組可能是相同的,但切片總是不同的,這是一個錯誤,不使用append的返回值(這很好,因爲它可能避免許多錯誤)。 –
哦,很酷。我一直在考慮追加工作,就像它在Python中所做的那樣。它不...... – Greg