基础笔记第6课
1. 那么我们来看看go的切片,其实像其他编程语言的动态数组一样,切片是围绕着动态数组的概念来的,数组一旦创建就不能更改其长度和类型,但是如果我们使用切片的话就可以利用它本身自带的函数例如append来进行增加数组,要是想变小就可以使用再一次给他切割一下就行。切片里有三个因素,数组的指针、长度(切片访问的元素的个数)、容量(切片运行增长到的元素个数)。创建切片可以两种方式,一种是用 make函数,另一种是用字面量。make 函数声明切片时,第二个参数必填,但第三个参数可以不填,不写第三个,容量默认等于长度值,指定容量不能小于长度。varslice=make(int【】, 5) varslice=make(int【】, 7, 5).还有一种情况得注意,就是如果你是另外一种方式创建,在你准备初始化的时候,要是全部的元素都写齐了,就不用说明他的位置,也就是索引这个概念。比如像这样var slice =【】int{1:1, 2:6, 5:10}新切片的长度,容量的计算,如果使用 slice【a:b:c】表示 对 slice进行从a到b进行切割,并指定新切片容量为c, 但是c不能大于 slice 的容量。新切片的长度和容量计算公式如下:长度就是b - i,容量就是c - i。 2. 可以使用内置函数 len, cap 查看切片的长度和容量,就比如说log.Println(len(newSlice), cap(newSlice)),对切片再次切片的时候,新切片和原来的切会共享其底层数组,所以更改其中一个切片时,其它对底层数组的引用的切片也会受到影响。可以使用append 来实现避免这种切片之间相互影响的情况。