GO标准库 bufio标准库

不用引用直接使用

常用函数

append

func append(sliece []Tpye, elems ...Type)[]Type

直接再slice后添加单个元素

append使用要点

  1. append()用来将元素添加到切片末尾并返回结果。 调用append函数必须用原来的切片变量接收返回值
  2. append追加元素,如果slice还有容量的话,就会将新的元素放在原来slice后面的剩余空间里,当底层数组装不下的时候,Go就会创建新的底层数组来保存这个切片,slice地址也随之改变。
  3. 分配了新的地址后,再把原来slice中的元素逐个拷贝到新的slice中,并返回。

追加一个元素

slice = append(slice,elem1,elem2)

追加一个切片

slice = append(slice,anotherSlice...)

使用make创建切片,用append常犯错误

  1. make创建切片,有默认长度,就有默认值。
  2. 当元素超过make创建时设的容量10时,原底层数组装不下,就会换一段新的连续的地址来存放元素。
    举例
	var a = make([]int, 5, 10)//make([]int, 10)也会给初值
	fmt.Println(a)
	fmt.Printf("%p\n",a)
	for i := 0; i <10; i++ {
			a = append(a,i)
	    //%p 打印切片地址
			fmt.Printf("%v,%p,cap(a):%d\n",a,a,cap(a))
	} 

make有初值,输出为

[0 0 0 0 0]
0xc0000180a0
[0 0 0 0 0 0],0xc0000180a0,cap(a):10
[0 0 0 0 0 0 1],0xc0000180a0,cap(a):10
[0 0 0 0 0 0 1 2],0xc0000180a0,cap(a):10
[0 0 0 0 0 0 1 2 3],0xc0000180a0,cap(a):10
[0 0 0 0 0 0 1 2 3 4],0xc0000180a0,cap(a):10
[0 0 0 0 0 0 1 2 3 4 5],0xc00007c000,cap(a):20
[0 0 0 0 0 0 1 2 3 4 5 6],0xc00007c000,cap(a):20
[0 0 0 0 0 0 1 2 3 4 5 6 7],0xc00007c000,cap(a):20
[0 0 0 0 0 0 1 2 3 4 5 6 7 8],0xc00007c000,cap(a):20
[0 0 0 0 0 0 1 2 3 4 5 6 7 8 9],0xc00007c000,cap(a):20

###删除元素
如果要在切片s中删除一个元素,被删除的元素索引为index

s = append ( s[ :index ], s[ index+1: ] )

len

返回数组,切片,字符串,通道的长度

panic

抛出一个panic异常

new和make

new和make区别

  1. make只能用来分配及初始化类型为slice,map,chan的数据;new可以分配任意类型的数据
  2. new分配返回的是指针,T;make返回的是T
  3. new分配的空间被清零,make分配后会进行初始化(nil和空[]的区别)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值