写在前面

makenewmake

这些基本类型都是语言为我们提供的,我们在前面的章节中其实已经介绍过了它们初始化的过程以及原理,但是在这里还是需要提醒各位读者注意的是,这三者返回了不同类型的数据结构:

slicedatacaplenhashhmapchhchan
new
int
makenew

实现原理

makenewmakenew

make

makemake
makeOMAKEOMAKESLICEOMAKEMAPOMAKECHAN

new

newcallnewzerobasenewobject
varnewobject

当然这也不是绝对的,如果当前声明的变量或者参数不需要在当前作用域外『生存』,那么其实就不会被初始化在堆上,而是会初始化在当前函数的栈中并随着 函数调用 的结束而被销毁。

newobjectmallocgc
mallocgc

总结

makenewmakenew

参考