如何在go for range迭代時修改值

for range的val不能直接修改,因爲地址不同

參考:https://codeday.me/bug/20170630/34971.html

package main

import "fmt"

func main() {
	x := make([]int, 3)

	x[0], x[1], x[2] = 1, 2, 3

	for i, val := range x {
		fmt.Println(&x[i], "vs.", &val)
	}
}

//輸出
0x416020 vs. 0x41602c
0x416024 vs. 0x41602c
0x416028 vs. 0x41602c

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章