go语言中什么时候使用make或者new
举例说明
new:
想象一下new某人创建了一个空盒子并将空盒子的方向(指针或地址)指向您。
make:
并且make作为创建一个填充了您定义的值并将非空框传递给您的框的人...不是指针或地址。
使用new场景:
1.创建一个新文件并将数据保存到新文件
2.为您创建或分配一个新缓冲区来存储一些数据,操作缓冲区,然后将数据刷新到其他地方,例如管道。
使用make场景:
1.使用映射、切片和通道,并希望直接操作其中的数据,而不是指针或地址。
2.用初始值预填充地图、切片和通道。
3.在运行时指定大小或增加/减少映射或切片的大小。
总结
new就是等于带指针的空框,make就是等于没有指针的填充框
官方手册:
https://golang.org/doc/effective_go.html#allocation_new
相关文章