&變數 獲取變數在記憶體空間的地址
*變數地址 獲取變數的值
一.普通資料
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
}
//如果傳入物件是值型別,不是參考型別這個不生效,只正對參考型別切片才生效,陣列值型別不生效,只能按照方式一寫
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/61798.html
標籤:Go
上一篇:Go-map
下一篇:求助,idea上java專案問題
