Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

GO 切片陷阱

切片的复制问题,导致新切片和旧切片的底层数组一致,修改会导致底层数组改变。

二维切片的拷贝问题:

1
2
3
4
5
6
7
8
// newArr是新切片
// matrix是旧切片
// copy(目标切片, 原切片),需要保证目标切片有足够的容量可以容纳。
newArr := make([][]int, len(matrix))
for i := range matrix {
newArr[i] = make([]int, len(matrix[i]))
copy(newArr[i], matrix[i])
}

评论