make用于创建并初始化切片、map和channel;语法为make([]T, len, cap),如make([]int, 5)创建长度为5的整型切片,容量可选,默认等于长度;make返回类型值本身,而new分配内存返回指针。

在Go语言中,make 函数用于创建和初始化切片、map 和 channel。当你想创建一个切片并指定其长度和可选容量时,make 是最常用的方式。
make 创建切片的基本语法
创建切片的语法如下:
make([]T, len, cap)其中:
- T 是切片元素的类型
- len 是切片的长度(必需)
- cap 是切片的容量(可选)
如果只提供长度,容量默认等于长度。
立即学习“go语言免费学习笔记(深入)”;
常见用法示例
下面是几种典型的使用方式:
一套面向小企业用户的企业网站程序!功能简单,操作简单。实现了小企业网站的很多实用的功能,如文章新闻模块、图片展示、产品列表以及小型的下载功能,还同时增加了邮件订阅等相应模块。公告,友情链接等这些通用功能本程序也同样都集成了!同时本程序引入了模块功能,只要在系统默认模板上创建模块,可以在任何一个语言环境(或任意风格)的适当位置进行使用!
- 创建长度为5的整型切片,所有元素初始化为0:
s := make([]int, 5) - 创建长度为3,容量为10的字符串切片:
s := make([]string, 3, 10) - 创建长度为0,容量为5的切片,适合频繁追加元素:
s := make([]int, 0, 5)
make 与 new 的区别
make 只能用于 slice、map 和 channel,并返回对应类型的值。new 是分配内存并返回指针。例如:
ptr := new(int)返回的是 *int,而 make 返回的是 slice 类型本身,不是指针。
小结
使用 make 创建切片时,你获得了一个已初始化的、可以立即使用的切片。它会自动分配底层数组,并将元素初始化为零值。这是创建动态切片的标准做法。
基本上就这些,不复杂但容易忽略细节。









