Go 创建切片(slice)

  • 通过数组生成切片
	var arr = [5]int{1, 2, 3, 4, 5}
	fmt.Printf("------%T\n", arr)

	log.Println(arr[2:4])

  • 通过make创建切片
	// 创建slice
	s2 := make([]int, 3)    // 省略容量时,则长度和容量相等,都为3
	s3 := make([]int, 3, 3) // 分配slice 3个容量,已使用3个长度
	s4 := make([]int, 0, 3) // 分配给slice 3个容量,一个长度都未使用
	log.Println(s2)
	log.Println(s3)
	log.Println(s4)
	s3 = append(s3, 20)
	log.Println(s3)
	s4 = append(s4, 20)
	log.Println(s4)


    // 追加元素
    s4 = append(s4, 30)     // 追加一个元素
    s4 = append(s4, 30,40)  // 追加多个元素
    s4 = append(s4, s4...)  // 追加一个切片,注:追加切片时需要打散

注:go语言中为切片分配容量时,小于1024个长度时,则按照2的指数倍数扩容;超过1024个长度时,则按照一定的比例。

示例:

s := make([]int, 0)
for i:=0;i<2048;i++ {
    s = append(s, i)
    log.Println("len>>", len(s), "cap>>", cap(s))
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值