golang append坑
查看如下代码输出
package mainimport "fmt"func main() {a := make([][]int, 0)b := make([]int, 0)b = append(b, 1)a = append(a, b)fmt.Println(a)b[0] = 2fmt.Println(a)
}
输出:
[[1]]
[[2]]
可以看出b改变之后,在a中也发生了改变,可以如下修改
package mainimport "fmt"func main() {a := make([][]int, 0)b := make([]int, 0)b = append(b, 1)tmp := make([]int, 1)copy(tmp, b)a = append(a, tmp)fmt.Println(a)b[0] = 2fmt.Println(a)
}
输出
[[1]]
[[1]]