TA贡献1875条经验 获得超3个赞
没有区别。根据Effective Go,它们是等效的。
作为一种限制情况,如果复合文字根本不包含任何字段,它会为该类型创建一个零值。表达式 new(File) 和 &File{} 是等价的。
TA贡献1828条经验 获得超3个赞
扩展@Doug 答案:
两种形式new(T)和&T{}完全等价:都分配一个零 T 并返回一个指向此分配内存的指针。唯一的区别是, &T{} 不适用于诸如 int; 之类的内置类型。你只能这样做new(int)。
new(T)
&T{}
int
new(int)
改善Go语言编程质量的50个有效实践
¥ 78.00
举报