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