讨论数量:
- 数组是值对象,可以进行比较,可以作为map的映射键,切片不能进行比较,不可以做为map的映射键
- 越界行为:数组在编译安全上painc ,而可以切片在运行时painc
- 在带有切片的结构中分配空间: 数组可以,切片不可以
- 性能:数组在访问单个元素时,比切片好
- 数组是切片的基础,数组是一定是切片,切片不一定是数组,固定大小的切片,可以切换为数组获得较小的性能提升。
- 数组的长度是类型的一部分,特定场景有一定意义
- 切片是数组的引用, 切片使用数组作为底层结构。
- 数组是值类型,切片是引用类型,切片包含三个属性:容量(cap),长度(len)和指向底层数组的指针,数组只有一个长度属性。
- 切片可以进行动态扩容。数组不能。
推荐文章: