在 golang 中 new 是另外一种创建变量的方式。通过 new(T) 可以创建 T 类型的变量(这里 T 表示类型),初始值为 T 类型的 零值 , 返回值为其地址 (地址类型是 *T)。
package main
import "fmt"
func newInt1() *int {
return new(int)
}
func newInt2() *int {
var a int
return &a
}
func main() {
p := newInt1()
q := newInt2()
fmt.Println(p, q) // 0xc00001c0b8 0xc00001c0c0
}