Golang学习笔记--Slice

· · 266 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

slice

切片(Slice)由指针、长度、容量组成,属于引用类型,是一种基于数组的可变长数据类型,与数组array类型关系密切,其中:

      1. 指针指向所引用数组的特定元素,该元素为slice的首元素,但不一定是数组的首元素

      2.长度(len)为切片的长度

      3.容量,从指针指向的数组的位置,到数组最后元素位置的长度

        使用append可以向切片添加元素,像slice添加元素,实际上是向slice所引用的数组添加元素,如果对应数组存在空间添加,则直接添加元素,当切片所引用的数组空间已满,无法再添加元素时,则底层,会新建一个匿名数组,并将slice内的元素从旧的数组中copy到新的匿名数组,该匿名数组的大小,为slice的容量*2,slice则指向这个新的匿名数组,同时在数组中添加元素,完成append操作,因此,在使用中,尽量创建大小合适的slice,尽量避免扩容操作(新建匿名数组等)

slice为引用类型,一般不支持比较操作(和nil比较除外)


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:

查看原文:Golang学习笔记--Slice

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

266 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传