&变量 获取变量在内存空间的地址
数组
*变量地址 获取变量的值
优化
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 } //若是传入对象是值类型,不是引用类型这个不生效,只正对引用类型切片才生效,数组值类型不生效,只能按照方式一写