new :主要用于为值类型 (如基本数据类型 int、float64、结构体 struct 等)分配内存空间,并将分配的内存初始化 为对应类型的零值 ,然后返回指向该内存地址的指针。
Go复制代码
package main
import "fmt"
func main() {
// 使用 new 为 int 类型分配内存
numPtr := new(int)
fmt.Println(*numPtr) // 输出: 0
// 使用 new 为结构体分配内存
type Point struct {
X, Y int
}
p := new(Point)
fmt.Println(p.X, p.Y) // 输出: 0 0
}
make :专门用于为引用类型 (slice、map 和 channel)分配内存并进行初始化操作,返回的是引用类型本身,而不是指针。