猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
new(T) 和 &T{} 有什么区别?
在 Go 中,给定结构类型 T,
new(T)
和之间有什么区别
&T{}
?
12345678_0001
浏览 222
回答 2
2回答
翻过高山走不出你
没有区别。根据Effective Go,它们是等效的。作为一种限制情况,如果复合文字根本不包含任何字段,它会为该类型创建一个零值。表达式 new(File) 和 &File{} 是等价的。
0
0
0
子衿沉夜
扩展@Doug 答案:两种形式new(T)和&T{}完全等价:都分配一个零 T 并返回一个指向此分配内存的指针。唯一的区别是, &T{} 不适用于诸如 int; 之类的内置类型。你只能这样做new(int)。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Go
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续