【go append切片之坑】教程文章相关的互联网学习教程文章

go append切片之坑【代码】

先看代码:package mainimport ("fmt" )func main() {var baseArr = []int{1,2,3}var part1 = baseArr[:1] // (1)var part2 = baseArr[1:]var result [][]intfor i := 0; i < len(part2); i++ {tempArr := append(part1, part2[i]) // (2)result = append(result, tempArr) // (3)}fmt.Println(result) } 预期结果:[[1 2] [1 3]]实际结果:[[1 3] [1 3]]为什么会这个样子呢?了解原因之前先学习一下切片和a...

Golang中的append是否会帮助nil类型的变量分配内存?【图】

结论:会的只声明而不分配内存的slice,它的容量应该是0;然后,如果此时使用append函数,会帮助其分配内存,并扩容运行结果: