一、切片概念(Slice)

切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。 切片是一个 引用类型,它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合。

Go语言切片是引用类型

image.png

二、切片用法

Go语言把slice当成array的view,array[:]把一个数组转换成一个切片

切片定义

  1. var siliceName []type
  2. //type表示切片中的元素类型

image.png
image.png

image.png

Slice底层的实现

image.png
image.png

切片添加元素

Go语言的内建函数append()方法可以为切片动态添加元素。可以一次添加一个元素或者多个元素
image.png
Go语言GC机制会去回收这块数组内存块