在Go語言中,數組是值類型,當數組作為參數傳遞給函數時,會進行值拷貝。如果需要在函數中修改數組內容并保持修改后的結果,可以使用數組指針來實現。
要引用一個數組指針,可以使用&
符號取得數組的地址。下面是一個示例:
package main
import "fmt"
func modifyArray(arr *[3]int) {
(*arr)[0] = 10
(*arr)[1] = 20
(*arr)[2] = 30
}
func main() {
arr := [3]int{1, 2, 3}
fmt.Println("Before:", arr)
modifyArray(&arr)
fmt.Println("After:", arr)
}
在上面的代碼中,modifyArray
函數接收一個指向數組的指針,并通過解引用指針來修改數組的值。在main
函數中,使用&arr
將數組的地址傳遞給modifyArray
函數。
輸出結果為:
Before: [1 2 3]
After: [10 20 30]
可以看到,數組的值在modifyArray
函數中被修改了,并且這個修改在main
函數中是可見的。
需要注意的是,在Go語言中,數組的長度也是數組類型的一部分,因此數組的指針類型為*[長度]類型
。在函數參數中,也需要指定數組的長度。