golang语法系列7-切片

切片知识点:

1.理解切片的长度len

2.理解切片的容量cap

package main

import "fmt"

func main() {
	s := make([]int,10)
	//s := []int{2000}
	printSlice(s)
	//var a []int
	for i := 1; i < 30; i++ {
		s = append(s, 100+i)
		printSlice(s)
	}



    s1:= []int{1,2,3,4,5,6}
	s1 = s1[:3]
	s1[2] = 33
	//此时s1的长度len为3,并且33覆盖3
	printSlice(s1)

	//由于s1的长度len为3,容量为6,append 44,没有超过容量,所以覆盖4
	s1 = append(s1,44) 
	printSlice(s1)

	//扩大s1的长度len为6;注意:不能超过容量
	//此时s1的长度len为6,容量保持不变
	s1 = s1[:6]
	printSlice(s1)

	//由于s1的长度为6,容量也为6,调用append函数会扩大容量
	//扩大容量规则:1.原来容量小于1024,则扩大到原来容量的2倍;2.原容量大于或等于1024,则扩大到原来容量的1.25倍
    //所以此时s1的长度len为7;容量变为12
	s1 = append(s1,77) 
	printSlice(s1)

	//由于s1的长度len为7,容量为12,再append 88 不会超过容量
	//所以len为8,容量保持不变
	s1 = append(s1,88)
	printSlice(s1)
}

func printSlice(s []int) {
	fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s)
}

https://blog.csdn.net/u013474436/article/details/88770501

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值