func main() { age := new([]int) age2 := make([]int, 0) fmt.Println("值", age, age2) fmt.Printf("地址age:%p age2: %p", age, age2) }
LILH1+Administrator@lilh1 MINGW64 /d/workplace/gotest
$ go run .
值 &[] []
地址age:0xc000098138 age2: 0xe3f800
可以看到new返回的是指针 make返回的是值引用
new是事实上申请了一块内存地址 而make只是把变量指向了特定的空切片地址