new(T) 和 &T{} 有什么区别?

在 Go 中,给定结构类型 T,new(T)和之间有什么区别&T{}


12345678_0001
浏览 222回答 2
2回答

翻过高山走不出你

没有区别。根据Effective Go,它们是等效的。作为一种限制情况,如果复合文字根本不包含任何字段,它会为该类型创建一个零值。表达式 new(File) 和 &File{} 是等价的。

子衿沉夜

扩展@Doug 答案:两种形式new(T)和&T{}完全等价:都分配一个零 T 并返回一个指向此分配内存的指针。唯一的区别是, &T{} 不适用于诸如 int; 之类的内置类型。你只能这样做new(int)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go