游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

Go学习(十)切片

  1。切片的概念
  Go语言中数组的长度不可改变,但在很多应用场景中,在初始定义数组时,数组的长度并不可预知,这样的序列集合无法满足要求。Go中提供了另外一种内置类型切片(slice),弥补了数组的缺陷。从底层来看,切片引用了数组的对象。切片可以追加元素,在追加时可能使切片的容量增大。与数组相比,切片不需要设定长度,在〔〕中不用设定值,相对来说比较自由。2。切片声明使用2。1通过make使用make()函数来创建切片varslice1make(〔〕int,3)slice1〔0〕1slice1〔1〕2slice1〔2〕4fmt。Printf(通过make关键字〔slic1〕类型:T值:v,slice1,slice1)输出:通过make关键字〔slic1〕类型:〔〕int值:〔124〕2。2直接初始化直接初始化使用slice2:〔〕int{1,2,4}fmt。Printf(直接初始化使用〔slic2〕类型:T值:v,slice2,slice2)输出:直接初始化使用〔slic2〕类型:〔〕int值:〔124〕2。3通过数组截取packagemainimportfmtfuncmain(){定义一个数组arr:〔。。。〕int{1,2,4,6,8,10,12,14,16}从索引0开始截取到索引为4(不包括4)slice3:arr〔0:4〕fmt。Printf(从索引0开始截取到索引为4(不包括4)〔slice3〕类型:T值:v,slice3,slice3)索引从0开始时,0也可以省略不写slice33:arr〔:4〕fmt。Printf(从索引0开始截取到索引为4(不包括4)〔slice33〕类型:T值:v,slice33,slice33)从索引4开始截取到最后slice4:arr〔5:〕fmt。Printf(从索引5开始截取到最后〔slice4〕类型:T值:v,slice4,slice4)}输出从索引0开始截取到索引为4(不包括4)〔slice3〕类型:〔〕int值:〔1246〕从索引0开始截取到索引为4(不包括4)〔slice33〕类型:〔〕int值:〔1246〕从索引5开始截取到最后〔slice4〕类型:〔〕int值:〔10121416〕3。切片删除3。1删除第一个元素packagemainimportfmtfuncmain(){定义一个切片slice:〔〕int{1,2,3,4,5,6}fmt。Printf(切片slice值:vlen:dcap:d,slice,len(slice),cap(slice))删除第一个元素sliceslice〔1:〕fmt。Printf(删除一个元素后值:vlen:dcap:d,slice,len(slice),cap(slice))}输出切片slice值:〔123456〕len:6cap:6删除一个元素后值:〔23456〕len:5cap:53。2删除最后一个元素packagemainimportfmtfuncmain(){定义一个切片slice:〔〕int{1,2,3,4,5,6}fmt。Printf(切片slice值:vlen:dcap:d,slice,len(slice),cap(slice))删除最后一个元素sliceslice〔:len(slice)1〕fmt。Printf(删除一个元素后值:vlen:dcap:d,slice,len(slice),cap(slice))}输出切片slice值:〔123456〕len:6cap:6删除一个元素后值:〔12345〕len:5cap:63。3删除指定位置元素packagemainimportfmtfuncmain(){定义一个切片slice:〔〕int{1,2,3,4}fmt。Printf(切片slice值:vlen:dcap:d,slice,len(slice),cap(slice))index:2指定索引前面一部分front:slice〔:index〕指定索引后面一部分behind:slice〔index1:〕拼起来sliceappend(front,behind。。。)fmt。Printf(删除索引d后值:vlen:dcap:d,index,slice,len(slice),cap(slice))}4。len()和cap()4。1作用
  切片的长度是切片中元素的数量。切片的容量是从创建切片的索引开始的底层数组中元素的数量。切片可以通过len()方法获取长度,可以通过cap()方法获取容量。数组计算cap()结果与len()相同。4。2使用packagemainimportfmtfuncmain(){创建一个切片slice:〔〕int{1,2,4,6,8,10,12,14,16}fmt。Printf(切片slice,len:dcap:d,len(slice),cap(slice))清空切片slice赋值给slice1slice1:slice〔0:0〕fmt。Printf(切片slice1,len:dcap:d,len(slice1),cap(slice1))使用make指定容量创建切片varslice2make(〔〕int,4,8)slice2〔1〕1slice2〔3〕3fmt。Printf(切片slice2,len:dcap:d,len(slice2),cap(slice2))数组计算cap()结果与len()相同arr:〔。。。〕int{1,2,4,6,8,10,12,14,16}fmt。Printf(数组arr,len:dcap:d,len(arr),cap(arr))}输出:切片slice,len:9cap:9切片slice1,len:0cap:9切片slice2,len:4cap:8数组arr,len:9cap:95。切片是引用类型
  切片没有自己的任何数据。它只是底层数组的一个引用。对切片所做的任何修改都将反映在底层数组中。数组是值类型,而切片是引用类型。5。1函数传参packagemainimportfmtfunctestSlice(slice〔〕int){修改切片的值slice〔0〕100}funcmain(){创建一个切片varslicemake(〔〕int,4,4)slice〔〕int{1,2,3,4}fmt。Printf(变量slice类型:T内存地址:p值:v,slice,slice,slice)调用函数修改testSlice(slice)fmt。Printf(调用函数后,变量slice类型:T内存地址:p值:v,slice,slice,slice)}输出变量slice类型:〔〕int内存地址:0xc00000c080值:〔1234〕调用函数后,变量slice类型:〔〕int内存地址:0xc00000c080值:〔100234〕5。2多切片共享
  修改切片数值,当多个切片共享相同的底层数组时,对每个元素所做的更改将在数组中反映出来。packagemainimportfmtfunctestSlice(slice〔〕int){修改切片的值slice〔0〕100}funcmain(){创建一个切片varslicemake(〔〕int,4,4)slice〔〕int{1,2,3,4}fmt。Printf(变量slice类型:T内存地址:p值:v,slice,slice,slice)复制给另外一个切片sliceCopy:slicefmt。Printf(变量sliceCopy类型:T内存地址:p值:v,sliceCopy,sliceCopy,sliceCopy)从切片中截取slice2:slice〔0:2〕fmt。Printf(变量slice2类型:T内存地址:p值:v,slice2,slice2,slice2)调用函数修改testSlice(slice)fmt。Printf(调用函数后变量slice类型:T内存地址:p值:v,slice,slice,slice)fmt。Printf(调用函数后变量sliceCopy类型:T内存地址:p值:v,sliceCopy,sliceCopy,sliceCopy)fmt。Printf(调用函数后变量slice2类型:T内存地址:p值:v,slice2,slice2,slice2)}6。append()和copy()6。1作用append():用于往切片中追加新元素,可以向切片里面追加一个或者多个元素,也可以追加一个切片。copy():不会建立源切片与目标切片之间的联系。也就是两个切片不存在联系,其中一个修改不影响另一个。6。2使用append()packagemainimportfmtfunctestSlice(slice〔〕int){修改切片的值slice〔0〕100}funcmain(){定义一个切片类型,长度为0,容量为4varslicemake(〔〕int,0,4)向切片中添加1个元素(不超过容量)slice1:append(slice,1)fmt。Printf(变量slice1值:v长度(len):d容量(cap):d地址:p,slice1,len(slice1),cap(slice1),slice1)向切片中添加多个元素(不超过容量)slice2:append(slice,3,4,5)fmt。Printf(变量slice2值:v长度(len):d容量(cap):d地址:p,slice2,len(slice2),cap(slice2),slice2)向切片中添加一个切片(超过容量)newSlice:〔〕int{1,2,3,4,5,6,7}slice3:append(slice,newSlice〔:〕。。。)fmt。Printf(变量slice3值:v长度(len):d容量(cap):d地址:p,slice3,len(slice3),cap(slice3),slice3)调用函数修改testSlice(slice1)fmt。Printf(调用函数后变量slice1值:v长度(len):d容量(cap):d地址:p,slice1,len(slice1),cap(slice1),slice1)fmt。Printf(调用函数后变量slice2值:v长度(len):d容量(cap):d地址:p,slice2,len(slice2),cap(slice2),slice2)fmt。Printf(调用函数后变量slice3值:v长度(len):d容量(cap):d地址:p,slice3,len(slice3),cap(slice3),slice3)}输出变量slice1值:〔1〕长度(len):1容量(cap):4地址:0xc00000c080变量slice2值:〔345〕长度(len):3容量(cap):4地址:0xc00000c0c0变量slice3值:〔1234567〕长度(len):7容量(cap):8地址:0xc00000c100调用函数后变量slice1值:〔100〕长度(len):1容量(cap):4地址:0xc00000c080调用函数后变量slice2值:〔10045〕长度(len):3容量(cap):4地址:0xc00000c0c0调用函数后变量slice3值:〔1234567〕长度(len):7容量(cap):8地址:0xc00000c100
  append()会改变切片所引用的数组的内容,从而影响到引用同一数组的其他切片。当使用append()追加元素到切片时,如果容量不够(也就是(caplen)0),Go就会创建一个新的内存地址来储存元素。6。3使用copy()packagemainimportfmtfuncmain(){定义一个切片slice:〔〕int{1,2,3,4}fmt。Printf(变量slice值:v长度(len):d容量(cap):d地址:p,slice,len(slice),cap(slice),slice)定义一个切片变量用来复制slicecopySlice:make(〔〕int,8)使用copycount:copy(copySlice,slice)fmt。Printf(复制的数量:d,count)fmt。Printf(变量copySlice值:v长度(len):d容量(cap):d地址:p,copySlice,len(copySlice),cap(copySlice),Slice)修改复制后的切片,源切片不会变copySlice〔0〕100fmt。Printf(修改后变量slice值:v长度(len):d容量(cap):d地址:p,slice,len(slice),cap(slice),slice)fmt。Printf(修改后变量copySlice值:v长度(len):d容量(cap):d地址:p,copySlice,len(copySlice),cap(copySlice),Slice)}输出变量slice值:〔1234〕长度(len):4容量(cap):4地址:0xc00000c080复制的数量:4变量copySlice值:〔12340000〕长度(len):8容量(cap):8地址:0xc00000c0c0修改后变量slice值:〔1234〕长度(len):4容量(cap):4地址:0xc00000c080修改后变量copySlice值:〔1002340000〕长度(len):8容量(cap):8地址:0xc00000c0c0
  微信搜索【猿码记】,获取最新文章信息。〔得意〕

牧原终于也亏损了,会有公司坚持不住了吗?牧原预告了三季报,第三季度预估亏损510亿元。在三季度猪肉价格低迷的情况下,猪肉一哥终于也亏损了。按照牧原的成本控制水平,其他猪肉公司的三季报肯定也是爆亏。但要注意,这个业绩实……系统余量留多少,你知道吗?阜新声艺视听动态余量(Headroom)对于现场扩声、录音,甚至对于买辆舒服的车来说,都是一个非常重要的概念。Headroom,在汽车上则翻译为头上空间。我们可以忽略掉买车的部分,但……从三分天下到群雄割据,直播如何搅动电商江湖?创业公司负责试错,中型公司负责验证,巨头负责清场,这是过去互联网商业竞争的一条铁律。但现在被直播电商打破了,变成了巨头试错,小巨头验证清场了。早在2015年就躬身直播电商……三星GalaxyS11最新渲染图曝光瀑布全面屏后置光谱仪虽然距离明年的开年旗舰大战还有很长一段时间,但这段时间以来关于几款热门机型的预热消息已是越来越多,尤其作为安卓标杆的新一代三星GalaxyS系列,全新的GalaxyS11系列旗……你必须知道的5条电脑常识打工人不容易,生活压力那么大,而我只想安静打游戏、上网、看片。可是老爸老妈老板老婆老公总是突然出现。。。。。。你懂得!知识改变命运!总有一些……五年60万辆,旗舰SUV领克09上市26。59万起WHYNOT我们的可能领克品牌成立五周年,再次以挑战惯例的姿态,向世界宣告领克09的诞生。10月20日,领克品牌五周年庆典暨豪华智能旗舰SUV领克09上市发布会在上海盛大举办。……Qorvo谈收购ActiveSemi市场前景广阔两者方案结合来源:TechWeb。com。cn作者:御风【TechWeb】几个月前,射频解决方案供应商Qorvo宣布已签署最终协议将收购ActiveSemi,近日,Qorvo召开媒体……浙江诸暨低调富豪打造长三角地区龙头地产企业,身价110亿浙江诸暨神秘富豪:打造长三角地区龙头地产企业,身价110亿推荐语:诸暨市,浙江省辖县级市,此地文化积淀深厚,名人辈出,是浙江省文化名城。此外,诸暨是一座民殷商富、开放创新……接口丰富助力创作的华硕创艺国度ProArt27英寸专业显示器作为业余游戏玩家,早已经为两台RTX20系显卡的主机分别配置了27英寸的2K屏高刷显示器,分别是华硕VG27AQ和华硕VG27B,前者采用刷新率为144Hz的IPS屏幕,后者采……盘点安防的下一个风口为何离不开这4项技术?2019年到2020年全球安防市场规模增长了9。5G、AI、大数据、云计算等新兴技术的赋能下,安防行业将迎来重要的发展机遇期,智能安防产业链不断被延伸。据最近的《2020……乐山即将迎来全新24小时一站式核心商圈消费体验时代你知道吗?乐山即将迎来全新24小时一站式核心商圈消费体验时代!有人将商圈比作信号辐射塔,在这座塔的辐射范围内,皆是便捷,不用出这个圈子就可以满足消费、娱乐、休闲等需……幻16领衔ROG硬核笔记本助阵2021英特尔大师挑战赛唤燃一芯,战火继续!由英特尔举办的2021第五赛季英特尔大师挑战赛(IntelMasterChallenger)华西区成都区域决赛将于9月28日正式与大家见面,本赛季选择了国内……
佳能单反相机停产说明了什么?与同行竟争的一种策略,凭着强大的优势,给竟争者来个吓马威。在单反领域始终是排头兵的隹能,生产微单那都不是事儿。日本相机行业的三足鼎立,必将一争。前天刚买了一个新手机,拍出……被批吃相难看!微信拟推出聊天记录付费云存储服务遭吐槽作为一名苦逼的社畜,微信公司群里聊天不敢错过,聊天记录不敢随便删除,就怕哪一天突然要用到,结果一看手机储存容量,微信占据了数十个G。于是,现在越来越多人买手机时较为看重的……为什么阿里不做搜索引擎?阿里是一直在做搜索引擎的,只不过阿里做搜索不叫阿里搜索,但是这并不代表阿里就没有做搜索引擎,比如神马搜索、夸克搜索(夸克浏览器自带搜索引擎)、比如针对性的淘宝商品搜索,1688……选择新能源我只认背景强大的上汽新能源我只认背景强大的厂家上汽。上汽集团是中国汽车界的No。1,非凡汽车是上汽集团打造的中高端智能纯电汽车品牌,目前有2款车型。若论续航,当属飞凡MARVELR,它实现NEDC……Top10丨突破100KM长续航的电动车品牌,你更看好谁?电动车已经不仅仅是代步工具,锂电化、智能化的升级,让人们对于电动车寄予了更多期待。其中,续航是电动车用户一直以来最关注的点,在巅峰时期,国内电动车品牌曾高达3000,到底哪些品……为什么国内的大厂不愿意适配Linux软件,技术实现上很难吗?当然是不愿意,故意的,因为大家看到有QQFORLINUX,但是功能很鸡肋,没法用。技术上不是什么问题,而是限制阻止,应该是不可告人目的。你说的apipost是什么东西,web接……电商实体店,强强联手,共赢才能共生任何红利都有消失的一天,电商也不例外。在同质化加剧,拼价格的电商平台,由于门槛低,鱼龙混杂,产品质量售后服务等参差不齐,严重影响消费者的购买体验,导致其逐渐对电商平台失去……扬杰科技(300373。SZ)拟对外投资引入外部团队共同开发智通财经APP讯,扬杰科技(300373。SZ)发布公告,为了进一步深化行业布局,实现公司的战略发展目标,该公司拟与徐小兵先生、杨兵先生签订合作协议,共同投资设立无锡杰矽微半导……元宇宙到底是个啥全世界似乎都在谈元宇宙。到底什么是元宇宙?它为什么突然火了?它离我们还有多远?比拼想象力的时候到了什么是元宇宙?截至目前,还没有一个被广泛认可的确切定义,人们对它的……吉林省启动赋予科研人员职务科技成果所有权或长期使用权试点记者从省科技厅了解到,我省已启动赋予科研人员职务科技成果所有权或长期使用权试点工作,将职务科技成果所有权由单位所有变为单位与职务科技成果完成人(团队)可以约定所有,促进科技成果……华为加持!续航突破1000公里!零百只要4秒多!随着大家环保意识的提高,对新能源汽车也越来越重视,很多用户也开始选择新能源汽车作为家庭用车,赛力斯华为智选SF5更是用户更优质的选择。从外观来看,赛力斯华为智选SF5绝对……565km续航超ModelY!这样的极星2谁不怕失而复得的第二十四届成都车展,赶在第三季度的尾梢正式开幕,仅延后两天的操作不仅让参会展商少了整天卖车的周末,匆忙的复工节奏也令不少车企的准备颇为慌乱。在这场主题已经被模糊……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网