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