贝利信息

Golang中new和make有什么区别_Golang内存分配函数对比说明

日期:2025-12-08 00:00 / 作者:P粉602998670
new用于任意类型,返回指向零值内存的指针;make仅用于slice、map、channel,返回已初始化的值本身。

在Go语言中,new和make都是用于内存分配的内置函数,但它们的应用场景、行为和返回值有本质区别。理解这些差异是掌握Go内存管理的关键。

适用类型不同

这是两者最根本的区别。

返回值类型不同

它们返回的内容完全不同,这直接影响了后续如何使用它们。

初始化程度不同

两者的初始化工作量不一样。

基本上就这些,记住核心点:初始化slice、map、channel用make;需要为其他任意类型分配内存并获取其指针时用new。实践中,new的使用频率远低于make,因为直接声明或取地址通常更简洁。