- GoLang之切片 *** 作注意事项
- 1.错误在切片中插入元素
- 2.正确在切片中插入元素
- 3.正确在尾部插入元素
- 4.切片传递
- 5.切片错误传递1
- 6.切片错误传递2
- 7.切片错误传递3
- 8.切片错误传递4
- 9.结构体传递
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.正确在切片中插入元素在这里时m切片的第一个发生了变化,因为他们共用的都是一个底层数组,底层数组的第一个元素发生了变化
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]]
}
4.切片传递
5.切片错误传递1
6.切片错误传递2
7.切片错误传递3
8.切片错误传递4
9.结构体传递
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)