Go语言Slice切片操作会使原数据出现混乱的原因是什么
发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,本篇内容介绍了"Go语言Slice切片操作会使原数据出现混乱的原因是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2024年10月21日Go语言Slice切片操作会使原数据出现混乱的原因是什么
本篇内容介绍了"Go语言Slice切片操作会使原数据出现混乱的原因是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
在学习Go语言的过程中,都知道可以通过切片操作来切割切片
例如
sl := make([]int,10)a = sl[1:] //表示取下标为1开始的元素到最后b = sl[:5] //表示取下标从0开始的元素到下标为4的元素c = sl[1:5] //表示取下标从1开始的元素到下标为4的元素d = sl[1:5:6] //表示取下标从1开始的元素到下标为4开始的元素,并且设置新切片的容量为6 *注意,这个操作想到于对原切片进行来一个深拷贝,很关键
当获取切片通过[m:n]
进行时获取的切片都是基于原切片的底层数组的,即你该片新切片中某个数据时,原切片的数据也会被改变,这通常不是我们想要的,当然,如果使用append()
来对新切片进行操作时如果没有发生扩容,那么原切片的值也会改变,所以,建议在进行切片获取操作的时候尽量使用[m:n:s]
这样通常都是开辟一个新的空间来拷贝原切片的数据,当然如果进行切片操作是要改变原切片,那么还是尽量使用[m:n]
,那么这样会节省内存开辟的空间
代码演示:
a := [10]int{1, 2} i := a[:6] y := []int{3,4} fmt.Printf("a->%d,a->%v\n", cap(a), a) fmt.Printf("i->%d,i->%v\n", cap(i), i) fmt.Printf("y->%d,y->%v\n", cap(y), y) fmt.Println("==============================") //i[0]=100 //fmt.Printf("a->%d,a->%v\n", cap(a), a) //fmt.Printf("i->%d,i->%v\n", cap(i), i) //fmt.Printf("y->%d,y->%v\n", cap(y), y) //fmt.Println("==============================") i = append(i, y...) fmt.Printf("a->%d,a->%v\n", cap(a), a) fmt.Printf("i->%d,i->%v\n", cap(i), i) fmt.Printf("y->%d,y->%v\n", cap(y), y)
结果:
a->10,a->[1 2 0 0 0 0 0 0 0 0]i->10,i->[1 2 0 0 0 0]y->2,y->[3 4]==============================a->10,a->[1 2 0 0 0 0 3 4 0 0]i->10,i->[1 2 0 0 0 0 3 4]y->2,y->[3 4]
"Go语言Slice切片操作会使原数据出现混乱的原因是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
下标
元素
数据
语言
混乱
原因
内容
拷贝
更多
知识
空间
过程
学习
实用
学有所成
接下来
代码
关键
内存
可以通过
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
万方数据库什么时候开始收费
联想软件开发招聘
游戏导致服务器延迟的原因
南京商邻互联网信息科技
dwg数据转换成数据库
吉林联想服务器
网络安全素材库
鼓楼区的app软件开发
江苏戴尔服务器系列虚拟主机
微信广告软件开发推广
北京数据库日志审计哪家好
苹果验证服务器身份是什么情况
服务器不能上网
第四届网络安全大赛
做一个数据库管理系统
用什么软件开发小程序
广州工行软件开发中心待遇
UC答题软件开发
服务器远程连接记录
服务器 内存 报价
南宁利升网络技术有限公司
网络安全概念 网宿科技
商标数据库技术学院
我国目前面临的网络安全威胁
泉州软件开发公司在哪里
博尔塔拉精益管理软件开发
球球英雄哪个服务器实力强
网络安全应急演练作用
ubunru如何登录数据库
明日方舟iosb站服务器