Dou*_*son 2 go
在Go中,给定结构类型T,new(T)和之间有什么区别&T{}?
new(T)
&T{}
Dou*_*son 7
没有区别.根据Effective Go,它们是等价的.
作为限制情况,如果复合文字根本不包含任何字段,则会为该类型创建零值.表达式new(File)和&File {}是等效的.
Pra*_*hra 5
扩展@Doug 答案:
两种形式new(T)和&T{}完全等价:都分配一个零 T 并返回一个指向此分配内存的指针。唯一的区别是, &T{} 不适用于诸如 int; 之类的内置类型。你只能这样做new(int)。
int
new(int)
归档时间:
10 年,4 月 前
查看次数:
141 次
最近记录: