本文记录了在使用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) 来进行初始化。函数