似乎两种创建所有“ 0”成员值的新对象指针的方式都返回一个指针:
type T struct{} ... t1:=&T{} t2:=new(T)
那么t1和t2之间的核心区别是什么,或者&new {}不能做的,或者new可以做,或者反之亦然?
似乎两种创建所有“ 0”成员值的新对象指针的方法都返回一个指针:类型T struct {} ... t1:=&T {} t2:= new(T)那么t1和...之间的核心差异]]
[…]“&T {}不能执行“新”操作,反之亦然吗?
对于结构和其他复合材料,两者相同。
请参见func newInt() *int {
// return &int{} --> invalid
var dummy int
return &dummy
}
。我想指出一些内部实现细节。您不应该在生产代码中使用它们,但是它们有助于在Go运行时中阐明幕后的真实情况。