栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

GoLang之切片操作注意事项

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

GoLang之切片操作注意事项

文章目录
  • GoLang之切片操作注意事项
    • 1.错误在切片中插入元素
    • 2.正确在切片中插入元素
    • 3.正确在尾部插入元素
    • 4.切片传递
    • 5.切片错误传递1
    • 6.切片错误传递2
    • 7.切片错误传递3
    • 8.切片错误传递4
    • 9.结构体传递

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]]

在这里时m切片的第一个发生了变化,因为他们共用的都是一个底层数组,底层数组的第一个元素发生了变化

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]]
}

4.切片传递

5.切片错误传递1

6.切片错误传递2

7.切片错误传递3

8.切片错误传递4

9.结构体传递

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862989.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号