Go语言编程快速入门:更大的切片

P19 go18 - 更大的切片
更新于: 2022-01-18 12:31:33

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个参数:类型,(长度=容量)
用make分配slice

三个点的用途

  • 可变参数 
  • 展开slice为arguments

参考