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 创建切片时,你获得了一个已初始化的、可以立即使用的切片。它会自动分配底层数组,并将元素初始化为零值。这是创建动态切片的标准做法。
基本上就这些,不复杂但容易忽略细节。
go golang go语言 区别 golang String 整型 字符串 int 指针 Go语言 切片 len cap map channel