本文記錄了在使用go語言當中遇到的基本知識點,對於最簡單的初級語法再也不羅列c++
a. new返回的是一個指針,而make返回的是一個已經初始化過的對象的引用;golang
4. 結合new&make講一下slice:數據結構
實際上golang是有array和slice兩種數據結構的,並且array是slice的基礎。其結構以下:app
type slice struct { array unsafe.Pointer len int cap int }
當使用相似於:var slice = new([10]int) 的時候,咱們實際上聲明瞭一個array,它的類型是[10]int,這個10是類型的一部分。因此它是沒辦法append的,也就是它的長度是固定的。而對於開發人員來講,確定但願有一個可擴展的array供咱們使用,這就產生了所謂的slice。若是瞭解c++的vector,確定以爲二者在思路上是差很少的,都是預先申請較多的空間並在適當的時候進行擴展。只不過這裏的slice使用append函數進行了顯式的管理。因此slice其實是有兩個屬性的,length,capacity, 使用 make([]int,10,100) 來進行初始化。函數