&變量 獲取變量在內存空間的地址
數組
*變量地址 獲取變量的值
優化
package main import "fmt" func main(){ b :=1111 c :=&b //獲取b的地址c的類型時*int test(c) fmt.Println(b) //值爲333發送了變化 } func test(a *int){ *a=333 } //能夠與下面進行對比 func main(){ b :=1111 test(b) fmt.Println(b) } func test(a int){ //若是不是傳入地址,他就會開闢一個新的內存空間對於原來值沒有影響 a=333 }
//寫法一 package main import "fmt" func main(){ b :=&[]int{1,2,3} test(b) fmt.Println(b) } func test(a *[]int){ (*a)[1]=3 } //GO對於切片作了優化能夠省略寫內容 package main import "fmt" func main(){ b :=[]int{1,2,3} test(b) fmt.Println(b) } func test(a []int){ a[1]=3 } //若是傳入對象是值類型,不是引用類型這個不生效,只正對引用類型切片才生效,數組值類型不生效,只能按照方式一寫