go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 切片(4):数组 vs. 切⽚

  • 容量是否可伸缩

数组容量不可伸缩,切片容量可以伸缩。

  • 是否可以进行比较

数组之间可以比较(只要维度、长度、元素相同的两个数组,== 的值就是true)。

切片之间不可以比较(两个相同的切片也不可比较,切片只可以与nil比较)。修改一个切片就是改变指向的数组,所以其他指向这个数组的切片也会受到影响。

  • 是否值类型

数组是值类型,切片是指针类型。

  • 使用场景

长度已知的情况使用数组;要求容量自动增长的情况使用切片,但切片容量的自动增长会导致内存分配和数据复制,以及未来相关的GC开销。

  • 数据类型统一

在声明数组和切片时,需要指定元素的数据类型。因此,两者元素的数据类型都是统一的。

如果需要元素的数据类型不一致,可以选择interface数据结构。

S5 := []interface{}{"hello", 1}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值