Go 中 make 与 new 的区别是什么?
資深大佬 : w708833018 50
我理解的是:
– new 会初始化值类型(如果 int,string,struct ),并返回指向该类型值的指针
– ( make/slice/chan )使用 make,make 返回的是类型本身,引用类型没必要返回他们的指针
– new 会初始化值类型(如果 int,string,struct ),并返回指向该类型值的指针
– ( make/slice/chan )使用 make,make 返回的是类型本身,引用类型没必要返回他们的指针
但是网上经常出现这样的解释:
– new 是用来分配内存的内建函数, 但与其它语言中的同名函数不同,它不会“初始化内存”,只会将“内存置零”
– make 只用于创建切片、映射和信道,并返回类型为 T (而非 *T )的一个已初始化 (而非置零)的值
我不明白,初始化内存,内存置零有什么区别,内存都置零了,难道还没有初始化内存吗
大佬有話說 (13)