文章目录
GoLang之切片操作注意事项
1.错误在切片中插入元素
result := [][]int{{7, 0}, {7, 1}, {6, 1}}
info := []int{5, 0}
m := result[info[1]:]
result = result[0:info[1]]
result = append(result, info)
result = append(result, m...)
fmt.Println(result)//输出:[[5 0] [5 0] [7 1] [6 1]]
2.正确在切片中插入元素
func main() {
result := []int{1, 2, 3, 4}
result = append(result, 0) //随便添加个数字用于扩展一个空间
copy(result[2:], result[1:])
fmt.Println(result) //输出[1 2 2 3 4]
result[1] = 10000
fmt.Println(result)//输出[1 10000 2 3 4]
}
3.正确在尾部插入元素
func main() {
var a [][]int
var b []int
b = []int{2, 3}
a = append(a, b)
fmt.Println(a) //输出[[2 3]]
b = []int{555, 665}
a = append(a, b)
fmt.Println(a) //输出[[2 3] [555 665]]
}
var a [][]int
var b []int
func main() {
b = []int{2, 3}
a = append(a, b)
fmt.Println(a) //输出[[2 3]]
b = []int{555, 665}// []int{555, 665} 这一句已经给b分配了一个新的切片了
a = append(a, b)
fmt.Println(a) //输出[[2 3] [555 665]]
}
var a [][]int
var b []int
func main() {
b = []int{2, 3}
a = append(a, b)
fmt.Println(a) //输出[[2 3]]
b[0] = 5
fmt.Println(a) //输出[[5 3]]
}
func main() {
b = []int{2, 3}
a = append(a, b)
fmt.Println(a) //输出[[2 3]]
b = append(b, 100)
fmt.Println(a) //输出[[2 3]]
}