golang 中的數組是值類型。在我的理解中,值類型保存的是值,而不是內存地址。所以下面的代碼,變量arr不應該改變。但它沒有。我想知道為什么func main() { arr := []int{0,0,0} arr2 := arr arr[1] = 1 fmt.Println(arr, arr2) // output [0 1 0] [0 1 0] // output in thought [0 0 0] [0 1 0]}也許這是一個基本問題。但是我找到了一些文章。他們都只是說在golang中哪些是引用類型和值類型。但它不能幫助我解決我的問題。
1 回答

浮云間
TA貢獻1829條經驗 獲得超4個贊
您使用的是切片,而不是數組。在您的程序中,arr
和arr2
都是指向同一個數組的切片。更改它,以便:
arr := [3]int{0,0,0}
然后,arr
是一個數組,它可以按您的預期工作。
- 1 回答
- 0 關注
- 144 瀏覽
添加回答
舉報
0/150
提交
取消