← 返回首页
Golang 中 make 和 new 的区别
make 和 new 都是用于内存分配的内建函数,但它们的使用场景和功能有所不同:
-
make:-
用于初始化并分配内存,只能用于创建
slice、map和channel三种类型。 -
返回的是初始化后的数据结构,而不是指针。
-
-
new:-
用于分配内存,但不初始化,返回的是指向该内存的指针。
-
可以用于任何类型的内存分配。
-
make 函数创建的是数据结构(slice、map、channel)本身,且返回初始化后的值。
而new 函数创建的是可以指向任意类型的指针,返回指向未初始化零值的内存地址。