1. 程式人生 > >golang 值型別與引用型別的區別

golang 值型別與引用型別的區別

1最本質的區別

值型別:記憶體中變數儲存的是具體的值 比如: var num int  num存放的是具體的int值 

但是變數在記憶體中的地址可以通過 &num 來獲取

引用型別:變數直接存放的就是一個地址值,這個地址值指向的空間存的才是值。

例如 var ptr *int =& num

 

2.值型別,引用型別都包括哪些

基本的資料型別 int系列,float系列,bool,string 陣列和結構體 struct

引用型別包括 指標,slice 切片,map ,chan , interface 

 

3.值型別和引用型別的使用特點

值型別  直接存放值,記憶體通常在棧中分配

應用型別 變數儲存的地址,通常真正的值在堆上分配。當麼有變數引用這個地址的時候,該值會被gc回收