golang new和make
new和make
1. new 和 make 都用于分配内存;
2. new 对指针类型分配内存,返回值是分配类型的指针,new也可以对 slice 、map、channel 分配内存;但多用于自定义的结构体
3. make 仅用于 slice、map和 channel 类型的初始化分配内存空间,返回值为类型本身,而不是指针;
4、new分配的返回的时指针,即类型*T;make返回引用,即T;
一、示例
package main import "fmt" func main() { a := make([]int, 3, 10) a = append(a, 1) fmt.Printf("%v,%T\n", a, a) b := new([]int) *b = append(*b, 10) fmt.Printf("%v,%T\n", b, b) } 输出: [0 0 0 1],[]int &[10],*[]int
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现