new 和 make的区别
new
和 make
的区别总结**
特性 | new |
make |
---|---|---|
用途 | 用于所有类型,分配内存并返回指针 | 用于初始化切片、映射和通道类型,返回已初始化的对象 |
返回值 | 返回类型的指针 | 返回的是切片、映射或通道本身,而不是指针 |
初始化内容 | 分配内存并初始化为零值 | 对切片、映射、通道进行初始化并准备好可以使用 |
适用类型 | 适用于所有类型(基础类型、结构体、数组等) | 仅适用于切片、映射和通道类型 |
零值初始化 | 是的,返回的指针指向的对象的字段会被初始化为零值 | 是的,初始化后的切片、映射和通道会具备默认行为(如空映射、空切片等) |
何时使用 new
和 make
**
- 使用
new
来分配内存并初始化零值时,通常是当你需要一个类型的指针并且不关心具体的初始化值(零值)时。 - 使用
make
来初始化和分配内存给切片、映射或通道,这些类型需要显式初始化才能使用。
总结
new
返回一个指向新分配内存的指针,并且将内存初始化为零值。make
仅用于切片、映射和通道的初始化,它为这些引用类型分配内存并准备好可用的结构,返回初始化后的对象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!