golang 内置函数new()和make()的区别

new(T) 和 make(T,args) 是 Go 语言内建函数,用来分配内存,但适用的类型不同。


new(T) 会为 T 类型的新值分配已置零的内存空间,并返回地址(指针),即类型为 *T 的值。
换句话说就是,返回一个指针,该指针指向新分配的、类型为 T 的零值。
适用于值类型,如数组、结构体等。


make(T,args) 返回初始化之后的 T 类型的值,
这个值并不是 T 类型的零值,也不是指针 *T,是经过初始化之后的 T 的引用。
make() 只适用于 slice、map 和 channel.

 

https://blog.csdn.net/MaxCoderLlj/article/details/80218025

posted @ 2021-10-08 17:37  会飞的猿  阅读(71)  评论(0编辑  收藏  举报