在Go语言中传递二维数几种方法_其实有几种不同的方式_这种方式特别适合处理大数组或者需要频繁调用的函数
在Go语言中传递二维数组的几种方法
在Go语言里,想要传个二维数组,其实有几种不同的方式。下面我就来给你详细说说。一、通过函数参数传递二维数组
这种方法就像把你的数组分给别人一样,直接告诉他这个数组的长度。因为Go语言的数组大小是它的一部分,所以必须要明确告诉函数数组的大小。看看这个例子:
```go func printArray(arr [3][3]int) { for i := 0; i < 3; i++ { for j := 0; j < 3; j++ { print(arr[i][j], " ") } println() } } func main() { arr := [3][3]int{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} printArray(arr) } ``` 在这个例子中,我们定义了一个函数`printArray`,它接受一个3x3的二维数组作为参数,并在函数内部打印这个数组。二、通过指针传递二维数组
如果你不想复制整个数组,而是想快速地传递数组的引用,那么使用指针就非常合适了。这种方式特别适合处理大数组或者需要频繁调用的函数。比如这样:
```go func modifyArray(arr [3][3]int) { for i := 0; i < 3; i++ { for j := 0; j < 3; j++ { arr[i][j] += 1 } } } func main() { arr := [3][3]int{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} modifyArray(&arr) println(arr) } ``` 这里,我们传递了一个指向二维数组的指针给`modifyArray`函数,然后在函数内部直接修改了原数组。三、使用切片传递二维数组
切片比数组更灵活,它可以动态地调整大小。如果你需要传递一个可能变化的二维数组,切片可能是更好的选择。示例代码如下:
```go func sumArray(arr [][]int) int { sum := 0 for _, row := range arr { for _, num := range row { sum += num } } return sum } func main() { arr := [][]int{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} println(sumArray(arr)) } ``` 在这个例子中,我们定义了一个函数`sumArray`,它接受一个二维切片作为参数,并计算所有元素的和。