Go语言切片(Slice)

Go语言切片是对数组的抽象,提供了一种灵活的变长数组替代方案。切片不是数组,而是指向底层数组的引用,允许长度变化。通过len()获取元素个数,cap()获取容量。切片可通过make()创建,或从数组部分生成。追加元素可能导致容量增大,多个指向同一底层数组的切片会相互影响。切片可以通过下限和上限截取,使用append()添加元素,copy()进行复制。
摘要由CSDN通过智能技术生成

Go语言切片(Slice)

  Go语言切片是对数组的抽象

  Go语言数组的长度不可改变,在特定场景中这样的集合就不太适用,Go提供了一种灵活,功能强悍的内置类型切片(动态数组),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。

 

切片Slice

其本身并不是数组,它指向底层的数组;

作为变长数组的替代方案,可以关联底层数组的局部或全部

为引用类型

可以直接创建或从底层数组获取生成

使用len()获取元素个数,cap()获取容量

一般使用make()创建

如果多个slice指向相同底层数组,其中一个值的改变会影响全部

 

make([]T, len, cap)

其中cap可以省略,则和len的值相同

len表示存放的元素个数,cap表示容量

 

切片(Slice)与底层数组的对应关系

由上图可知:

定义切片

声明一个未指定大小的数组来定义切片:

 

var identifier []type identifier []type

切片不需要说明长度。

 

或使用make()函数创建切片:

 

var slice1 []type = make([]type, len)

也可以简写为

slice1 := make([]type, len) slice1 []type = make([]type, len)

也可以简写为

slice1 := make([]type, len)

 

也可以指定容量,其中capacity为可选参数。

 

make([]T, length, capacity)([]T, length, capacity)

这里的lenth是数组的长度并且也是切片的初始长度。

 

切片初始化

 

s :=[] int {
   1,2,3 } :=[] int {
  1,2,3 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值