本文记录了在使用go语言当中遇到的基本知识点,对于最简单的初级语法不再罗列
a. new返回的是一个指针,而make返回的是一个已经初始化过的对象的引用;
4. 结合new&make讲一下slice:
实际上golang是有array和slice两种数据结构的,而且array是slice的基础。其结构如下:
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) 来进行初始化。
原文:https://www.cnblogs.com/souther-blog/p/10366800.html