Slice是Go中一个重要的数据类型,它提供了比数组更强大的序列交互方式。
与数组不同,slice的类型仅由它所包含的元素的类型决定(与元素个数无关)。要创建一个长度不为0的空slice需要使用内建函数make。这里我们创建了一个长度为3的string类型的slice(初始值为零值)。
我们可以和数组一样设置和得到值
len返回slice的长度
除了基本操作外,slice支持比数组更丰富的操作。比如slice支持内建函数append,该函数会返回一个包含了一个或者多个新值的slice。注意由于append可能返回一个新的slice,我们需要接收其返回值
slice还可以copy。这里我们创建一个空的和s有相同长度的slice—c,然后将s复制给c。
slice支持通过slice[low:high]语法进行“切片”操作。例如,右边的操作可以得到一个包含元素s[2]、s[3]和s[4]的slice。
这个slice包含从s[0]到s[5](不包含5)的元素。
这个slice包含从s[2](包含2)之后的元素。
我们可以在一行代码中声明并初始化一个slice变量
slice可以组成多为数组结构。内部的slice长度可以不一致,这一点和多为数组不同。
注意,slice和数组是不同的类型,但他们通过fmt.Println打印的输出结果是类似的。
结果如下: