![go语言中 `var a [2][]int` 创建的是数组还是切片?](https://img.php.cn/upload/article/001/246/273/173130899072443.jpg)
go语言中数组还是切片?
在go语言中,数组和切片是两种不同的数据结构。数组具有固定长度和类型,而切片具有动态长度和类型。那么,当我们使用var a [2][]int这样的语法时,创建的到底是数组还是切片呢?
数组还是切片?
对于var a [2][]int,由于[2]部分指定了长度,因此可以确定这是一个定长切片的数组。也就是说,a是一个包含两个切片元素的数组,每个切片元素都是一个int类型切片。
立即学习“go语言免费学习笔记(深入)”;
结构示例
[2][]int的结构如下:
[
[1,2,3,4,5],
[3,4,5]
]其中,[1,2,3,4,5]和[3,4,5]分别是长度为5和3的两个int类型切片。
[][2]int
当我们使用var a [][2]int语法时,创建的是一个不定长的数组,其中的每个元素都是长度为2的int类型数组。
结构示例
[][2]int的结构如下:
[
[1,2],
[3,4],
[3,5],
....
]其中,[1,2],[3,4],[3,5]分别是长度为2的三个int类型数组。










