# 多维数组与切片

URL: https://caijiao.org/go/02-composite/04-multidimensional
Source: docs/go/02-composite/04-multidimensional.md
Description: 本节介绍 Go 语言中的多维数组与多维切片的定义与操作，帮助管理复杂的二维及以上数据结构。

多维数组和切片用于表示矩阵或表格等结构化数据。

## 1. 多维数组定义

声明二维数组：

```go
var matrix [3][4]int  // 3行4列的整型数组
````

初始化：

```go
matrix := [2][3]int{
    {1, 2, 3},
    {4, 5, 6},
}
```

访问元素：

```go
val := matrix[1][2]  // 第二行第三列元素，值为6
```

## 2. 多维切片定义

切片可以嵌套创建多维结构：

```go
slice := [][]int{
    {1, 2, 3},
    {4, 5},
    {6},
}
```

不同于数组，多维切片的内部切片长度可以不一样。

## 3. 遍历多维数组与切片

使用双层 `for` 循环：

```go
for i := range matrix {
    for j := range matrix[i] {
        fmt.Println(matrix[i][j])
    }
}
```

多维切片同理：

```go
for i, row := range slice {
    for j, val := range row {
        fmt.Println(i, j, val)
    }
}
```

---

多维数组和切片适合处理复杂数据，灵活应用可提升代码结构化程度。
