Golang 的值傳遞

注意:go只有值傳遞!go只有值傳遞!go只有值傳遞!

你可會問,對於slice, map, channel,應該是引用。但其實不是,當將這三種數據結構作爲參數傳過去時, 你函數接收到的只是實參的地址的拷貝!注意,是拷貝。也就是說,當你在函數內部將形參新賦值給一個新的內存地址時,實參並不會改變。看代碼

import "fmt"

func test(s []int)  {
   s = []int{2, 3}
}


func main() {
   s := []int{1, 2, 3}
   fmt.Println(s)
}

 

輸出結果:

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