1. 程式人生 > 其它 >七、GO語言值型別和引用型別

七、GO語言值型別和引用型別

值型別和引用型別的說明

1.值型別:基本資料型別int系列,float系列,bool,string,陣列和結構體struct

2.引用型別:指標,slice切片、map、管道chan、interface等都是引用型別

值型別和引用型別的特點

1.值型別:變數直接儲存值,記憶體通常在棧中分配

2.引用型別:變數儲存的值是一個記憶體地址,這個記憶體地址對應的空間才是真正儲存資料(值),記憶體通常在堆上分配(也有可能會被分配在棧上),當沒有任何變數引用這個地址時,改地址對應的資料空間就成為一個垃圾,由GC來回收。

簡單來理解

  假設在廚房中有大大小小的各種罐子

  值型別是把東西放在一個罐子裡,通過變數可以知道這個罐子的擺放位置,罐子裡面的東西就是值,

  引用型別也是把東西放在一個罐子裡,變數名也同樣代表的是這個罐子擺放的位置,罐子裡面的東西(值)是另外一個罐子的擺放位置。

  這裡面說的值就是我們在開發當中實際使用到的內容,比如說var a = 100,var b = "張三",這裡的100和張三就是罐子的值。不同的是引用型別有兩個罐子,前面那個管子裡面存的值是後面那個罐子的擺放位置,後面那個罐子裡的值才是100或者張三