GO语言数组和切片的区别

本文详细探讨了Go语言中数组和切片的区别。数组是值类型,声明时需指定固定长度且不可扩容,而切片是引用类型,长度可变并能自动扩容。切片实际上指向底层数组,当扩容时会创建新的底层数组。了解这些差异对于高效使用Go语言至关重要。
摘要由CSDN通过智能技术生成

GO语言array和slice区别是什么?

数组Array:

  1. 数组的数据类型是值类型
  2. 数组声明时需要指定长度。[size]type{}
  3. 数组是固定长度,不可以扩容
  4. 数组获取len()、cap()的值是一样的。因为数组是固定长度,长度和容量一致

切片Slice:

  1. 切片的数据类型是引用类型
  2. 切片声明时不需要指定长度。[]type{};但是make关键字声明时可以指定切片的长度和容量make([]type, len, size)
  3. 切片是不定长,可以扩容。切片也被称为变长数组、动态数组
  4. 切片获取len()、cap()的值不一定一样。因为切片不定长,但是容量可以自动扩容
  5. 切片其实是指向一个底层数组,操作切片的元素实际是操作数组的元素。如果切片发生扩容,会新建底层数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值