14.4 详细说说new和make的区别 - Go语言中文社区

14.4 详细说说new和make的区别


new和make的区别?

new 的作用是初始化一个指向类型的指针 (*T) 。

new 函数是内建函数,函数定义:func new(Type) *Type。 使用 new 函数来分配空间。传递给 new 函数的是一个类型,不是一个值。返回值是指向这个新分配的零值的指针。

make 的作用是为 slice,map 或 chan 初始化并返回引用 (T)。 make 函数是内建函数,函数定义:func make(Type, size IntegerType) Type;第一个参数是一个类型,第二个参数是长度;返回值是一个类型。

make(T, args) 函数的目的与 new(T) 不同。它仅仅用于创建 Slice, Map 和 Channel,并且返回类型是 T(不是T*)的一个初始化的(不是零值)的实例。

总结

  • make 仅用于初始化 slice,map 和 chan,new 可用于初始化任意类型。
  • make 返回值是”引用类型“,new 返回值是指针类型。
版权声明:本教程内容除了本站原创内容外,还有来源自C语言编程网,博客园,CSDN等技术站点,感谢相关博主原创文章,转载请附上原文出处链接和本声明。
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 阅读 ( 612 )
  • 分类:Go

0 条评论

官方社群

GO教程

猜你喜欢