go语言 slice

基础

  1. 数组的长度是固定的,切片的长度是不固定的
a:=[5]int{ } // 数组定义,必须有长度
s:=[ ]int{ }//切片定义,没有长度

append

slice = append(slice, 456)
slice = append(slice, 1, 2, 3)

len&cap

  1. 在使用appned进行数据添加时 如果长度超出容量 容量会自动扩容
  2. 一般扩容方式为上一次 容量*2 如果超过1024字节 每次扩容上一次的1/4
  3. 容量扩容每次都是偶数
//len(slice)  计算切片的长度
//cap(slice)  计算切片的容量,就是存了多少数据

截取

操作含义
s[n]切片s中索引位置为n的项
s[:]从切片s的索引位置0到len(s)-1处所获得的切片
s[low:]从切片s的索引位置low到len(s)-1处所获得的切片
s[:high]从切片s的索引位置0到high处所获得的切片,len=high
s[low:high]从切片s的索引位置low到high处所获得的切片,len=high-low
s[low:high:max]从切片s的索引位置low到high处所获得的切片,len=high-low,cap=max-low
len(s)切片s的长度,总是<=cap(s)
cap(s)切片s的容量,总是>=len(s)

copy

将一块内存中的内容拷贝到另一块中,深拷贝

copy(s, slice)

其他

1.数组是值传递,而切片是引用传递

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值