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

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

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

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

  • 是否可以进行比较

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

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

  • 是否值类型

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

  • 使用场景

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

  • 数据类型统一

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

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

S5 := []interface{}{"hello", 1}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4873717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-11
下一篇 2022-11-11

发表评论

登录后才能评论

评论列表(0条)

保存