当前位置: 技术文章>> go中的在函数间传递数组详细介绍与代码示例

文章标题:go中的在函数间传递数组详细介绍与代码示例
  • 文章分类: 后端
  • 10789 阅读
文章标签: go go基础

在Go语言中,数组作为函数的参数或返回值是常见的操作。下面我将详细介绍如何在函数之间传递数组,并给出相关的代码示例。

通过值传递数组

默认情况下,数组是通过值传递的。当在函数中传递一个数组时,实际上是传递了该数组的一个副本。这意味着在函数内部对数组的修改不会影响到原始数组。


package main



import "fmt"  



func modifyArray(arr [3]int) {

arr[0] = 100  

fmt.Println("Inside modifyArray:", arr) // [100 2 3]  

}



func main() {

myArray := [3]int{1, 2, 3}

modifyArray(myArray)

fmt.Println("Outside modifyArray:", myArray) // [1 2 3],原始数组不受影响  

}

在上面的代码中,modifyArray函数接收一个长度为3的整数数组作为参数。在函数内部,我们修改了数组的第一个元素,并打印了修改后的数组。然后在main函数中,我们创建了一个名为myArray的数组,并将其传递给modifyArray函数。可以看到,修改后的数组在modifyArray函数外部并不生效。

通过引用传递数组

如果你希望在函数内部对数组的修改影响到原始数组,可以使用指针来传递数组。通过传递指向数组的指针,函数可以直接操作原始数组。


package main



import "fmt"  



func modifyArray(arr *[3]int) {

arr[0] = 100  

fmt.Println("Inside modifyArray:", *arr) // [100 2 3]  

}



func main() {

myArray := [3]int{1, 2, 3}

modifyArray(&myArray) // 通过指针传递数组  

fmt.Println("Outside modifyArray:", myArray) // [100 2 3],原始数组受到影响  

}

在上面的代码中,modifyArray函数接收一个指向长度为3的整数数组的指针。通过使用&操作符获取数组的地址,我们将指向myArray的指针传递给函数。在函数内部,我们修改了数组的第一个元素,并打印了修改后的数组。然后在main函数中,我们打印了修改后的myArray,可以看到其第一个元素已经被修改为100。


推荐文章