表达式new(T)将创建一个T类型的匿名变 量,初始化为T类型的零值,然后返回变量地址,返回的指针类型为 *T 。
new只是一个语法糖,下面的两个newInt函数有着相同的行为:
func newInt() *int {
return new(int)
}
func newInt() *int {
var dummy int
return &dummy
}
每次调用new函数都是返回一个新的变量的地址。
new函数使用通常相对比较少,因为对于结构体来说,直接用字面量语法创建新变量的方法会 更灵活:
tmp := &Tmp{}