Go语言编程快速入门:更大的切片
P19 go18 - 更大的切片
append函数
- 添加一个元素
- 返回一个新的
slice
- 可以同时添加多个
- append的时候,会动态改变底层数组,
- 如果添加的时候,底层容易够用,就不新生成数组
- 如果底层长度不够, 就会2 * length 生成一个新的底层数组
sls := []string{"slice1", "slice2", "slice3"}
sls = append(sls, "slice4")
sls = append(sls, "slice5", "slice5", "slice6")
fmt.Println(sls)
长度和容量(length & capcity)
- 元素个数即长度 (len)
- 容量对应的底层数组即容量 (cap)
3索引切分
- 第3个参数 就是扩容的限制(每次扩容4个)
sls := []string{"sl1", "sl2", "sl3", "sl4", "sl5", "sl6", "sl7", "sl8"}
s1 := sls[0:4:4]
worlds := append(s1, "me")
fmt.Println(sls, s1, worlds)
make 为 slice预分配
- make([]stirng, 0, 10)
- 3个参数:类型,长度,容量
- 2个参数:类型,(长度=容量)
三个点的用途
- 可变参数
- 展开slice为arguments