文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

golang 之slice 变长数组

2023-06-04 15:00

关注

slice:就是变长数组,主要是因为array(数组)长度不可变,导致在使用的时候存在诸多限制,才有了slice;slice 主要包含3个部分:1、指针 2、容量  3、长度 ,由于slice 的底层结构依然是数组,所以操作的时候,不是操作slice的数据,而实际是操作底层数组的数据,所以得有指向该数组的指针,长度则表示当前slice的长度(非底层数组的长度),容量则表示从slice起始位置到底层数组的结束位置,注意此处是位置差,即表示能存放多少个元素。

slice 的用法和array类似,但申明时,不指定数组的长度,如 var s []int,slice 通过len(s),cap(s)查看s的长度和容量

测试下:

mainmain(){   testArray =[]int {,,,,,,,,,}   fmt.Println(testArray[:])   fmt.Println(testArray[len(testArray)-])   i,v:=testArray {      fmt.Printf(,i,v)   }   s:=testArray[:]   i1,v1:=s{      fmt.Printf(,i1,v1)   }   fmt.Printf(,cap(s),len(s))}测试结果为:[0 1 2 3]90 01 12 23 34 45 56 67 78 89 90 31 42 53 64 7the s cap's 7the s len's 5slice 倒序:package mainimport "fmt"func main(){   var testArray [10]int=[10]int {0,1,2,3,4,5,6,7,8,9}   fmt.Println(testArray[0:4])   fmt.Println(testArray[len(testArray)-1])   for i,v:=range testArray {      fmt.Printf("%d %d\n",i,v)   }   s:=testArray[3:8]   for i1,v1:=range s{      fmt.Printf("%d %d\n",i1,v1)   }   fmt.Printf("the s cap's %d\nthe s len's %d\n",cap(s),len(s))   // reserse the slice   fmt.Println("before reserse ",s)   reserse(s)   fmt.Println("after reserse",s)}func reserse(s []int){   for i,j:=0,len(s)-1;i<j;i,j = i+1,j-1 {      //for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {      s[i],s[j]=s[j],s[i]   }}输出:。。。before reserse  [3 4 5 6 7]after reserse [7 6 5 4 3]

检查slice是否为空的两种方式,直接和nil比较,还有一个是判断slice长度为空

testNil []inttestNil==nil {   fmt.Println()}len(testNil)=={   fmt.Println()}
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯