写在前面
makenewmake
这些基本类型都是语言为我们提供的,我们在前面的章节中其实已经介绍过了它们初始化的过程以及原理,但是在这里还是需要提醒各位读者注意的是,这三者返回了不同类型的数据结构:
slicedatacaplenhashhmapchhchan
new
int
makenew
实现原理
makenewmakenew
make
makemake
makeOMAKEOMAKESLICEOMAKEMAPOMAKECHAN
new
newcallnewzerobasenewobject
varnewobject
当然这也不是绝对的,如果当前声明的变量或者参数不需要在当前作用域外『生存』,那么其实就不会被初始化在堆上,而是会初始化在当前函数的栈中并随着 函数调用 的结束而被销毁。
newobjectmallocgc
mallocgc
总结
makenewmakenew