在创建一个新的切片是都会先创建一个长度为len的数组,并为其开辟一个cap长度为cap的额外空间,所以在cap范围类增加元素,数组的起始地址不会改变,否则会创建一个新的数组,即起始的位置发生改变

数组创建
代码
intArr:=[...]int{1,2,3,4,5,6,7,9}
//方式一指定开始和结束
s:=intArr[1:3]
//方式er指定开始和结束+容量
s:=intArr[1:3:6]
创建后的slice
[a: b :c]
a:起始位置
b:截取数据的结束位置 默认到末端)
c:截取后的容量位置 默认到末端)
len为截取的元素长度 即:(3 - 1=2)
cap为截取的起始元素到素组最后一个元素的长度 即:
(原数组长度:8 - 起始元素1=7)
底层数组: 为原数组的截取的起始元素到素组最后一个元素
make创建
代码
s:=make([]int,10,20)
创建后的slice
len为:10
cap为:20(在创建时指定)
底层数组: 长度为10的数组
slice扩容
在cap范围内不会创建新的底层数组
超过cap则会创建新的数组 ,生成新的cap和len 超过cap也会的
补充:golang 中使用数组创建slice时的注意事项
golang中,slice是对固定长度数组的一段切片,其底层是用对数值空间的指针实现的。
在golang中当使用一个数组来创建slice时如:
var array [5]int = [5]int{1,2,3,4,5}
//切割出数组中的4个值,创建一个slice
myslice := array[0:4]
打印array的值为:
1, 2, 3, 4, 5
打印mysqlice的值为:
1, 2, 3, 4
现在我们对myslice进行append操作
myslice = append(myslice,100)
打印array的值为:
1, 2, 3, 4, 100
打印mysqlice的值为:
1, 2, 3, 4, 100
现在我们再对myslice进行修改操作
myslice[0] = 50
打印array的值为:
50, 2, 3, 4, 100
打印mysqlice的值为:
50, 2, 3, 4, 100
当slice的长度没有超过创建是的数组的长度时,slice还是指向的创建时使用的数组。
但是!
现在myslice的长度已经和用来创建slice时使用的数组的长度一致了
我们再对myslice进行append操作,让myslice的长度大于创建时使用的数组的长度
myslice = append(myslice,200)
打印array的值为:
50, 2, 3, 4, 100
打印mysqlice的值为:
50, 2, 3, 4, 100, 200
myslice不是通过指针的方式跟arr建立关联的吗?为毛这种情况却没有改变arr的值呢?
因为当myslice超出arr的长度时,Go语言会隐含式地对array做了copy,并让myslice内部的指针重新指向了新数值,所以一切预期中修改array的值的操作,都不会生效!
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐:
AI免费写作一键生成,效率与创意的完美结合
SEO快速提升:让你的网站排名瞬间飙升的秘诀,网站建设的发展目标
智能AI写作生成:如何借助人工智能提升创作效率与质量
360优化关键词-提升网站流量与排名的秘密武器,美拍ai
SEO优化需要给网站做哪些优化工作?,ai捕捉火苗
AI免费写文章生成器高效写作新革命
ChatGPT页面无法访问?解决方案,让你轻松摆脱困扰!,ai染发颜色
ChatGPT出现报错503?这些解决办法你必须知道!,粉墨ai说唱
SEO场景下的数字营销:如何通过精准优化提升网站流量,陕西融发建设集团网站
ChatGPT登录503错误?轻松解决,快速恢复畅享智能体验!,ai怎么加植物材质效果
ChatGPT40不收费版本:科技革新,智能助手助力生活与工作,ai医疗武器有哪些
【SEO优化全攻略】提升网站流量的终极秘籍,带你轻松玩转搜索引擎优化!,金融网站推广维护
中国AI软实力崛起:技术创新与产业应用的完美融合,seo0066
SEO要素:优化网站排名的关键因素全解析,棒球大联盟营销推广文案
SEO管家:为您的网站保驾护航的智能SEO助手,网站推广作用有哪些类型
ChatGPT启动时遇到问题?快速解决方案让你畅享智能对话体验,ai如何保存logo
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
什么是seo的豆子,何为seo ,ai圆复制
中外链:打通全球流量的桥梁,提升网站排名与流量的双重保障,行业网站建设思路
SEO出来,打破流量瓶颈,助力企业增长的关键策略,南昌营销推广代理商电话
SEO地位:如何提升你的网站排名与曝光度,抢占市场先机,微营销网络推广
SEO更多-让你的企业站点在搜索引擎中脱颖而出,如何结交seo大神
AI自动化:开启智能未来的无限可能,simplify ai
SEO自己:打造属于你的数字营销利器,微信裂变营销推广软件
SEO建站,开启网站优化的全新篇章!,网络营销推广合作方式
“多网建站”助力企业跨越发展,开启全新数字化时代,海南网站优化电池
SEO教育:搜索引擎优化,开启成功职业之路,搜狗SEO排名接单
Chatttst:开启智能沟通新时代的无限可能,上海联通ai
seo要懂些什么,seo主要做什么的 ,小艾艾AI
ChatGPT怎么打开不了?全方位解决方案!,大庆ai
什么是SEO金融,seo是做什么的 ,ai中转程序
为什么seo吸引人,为什么seo吸引人呢 ,ai路径查找器绘制树
揭开“好的AI软件”背后的秘密:让生活和工作更智能的利器
打造内容创作新时代:有言AI生成助力创作者释放灵感
SEO应该如何提升网站流量与排名?揭秘成功的SEO策略,肺炎疫苗推广营销
SEO这种营销方式,改变你网站流量的秘密武器,佛山网站设计建设
软件AI的全称:人工智能驱动未来的关键力量
GPT优化:让你的工作与生活更高效、更智能,Ai__79
seo适合什么人做,哪种seo做得好 ,晋城ai论文写作免费
什么是seo技术,什么是seo及seo的作用 ,AI倒放仓鼠
用AI生成的文章算原创吗?深度解析AI写作背后的秘密
中文润色:提升表达的艺术,打造无懈可击的语言魅力,广告营销推广新思路论文
SEO结构优化:助力网站提升排名与流量的关键策略,杭州小网站推广哪家好做
AI文章精简-高效提炼与优化你的内容创作,ai quid
二次创作的魅力与潜力:创意无限的数字时代,天长外贸网站建设
Zkept:重塑未来生活的智能科技革新,营销推广的面试问题
SEO实现:如何通过SEO优化提升网站流量与排名,南京市公司网站推广
seo监控什么意思,seo数据监控 ,ai panda眼镜架
AI缩写文档:革新文档管理与自动化的未来,ai聊天中文
企业营销:如何在竞争激烈的市场中脱颖而出,美装网站Seo优化