Go 中是否使用make创建slice的区别
go slice 的make 会创建默认长度 且值为0 的slice
在 Go 语言中,可以使用 make
函数来创建切片(slice)。切片是一种动态数组,它可以在运行时动态增长或缩小。以下是使用 make
和不使用 make
创建切片的主要区别:
使用 make
创建切片:
1 |
|
指定长度和容量: 使用
make
创建切片时,您需要明确指定切片的长度和容量。长度是切片当前包含的元素数量,容量是底层数组的大小,通常大于或等于切片的长度。指定容量可以提高性能,因为它可以减少重新分配内存的次数。底层数组初始化: 使用
make
创建切片时,它会自动初始化底层数组,将切片的元素都设置为其类型的零值。在上面的示例中,slice
是一个包含5个零值整数的切片。
不使用 make
创建切片:
1 |
|
`
自动确定长度: 不使用
make
创建切片时,切片的长度会根据提供的元素数量自动确定。在上面的示例中,slice
的长度是5,因为提供了5个整数。容量与长度相同: 如果不使用
make
创建切片,切片的容量将与长度相同,因为底层数组的大小会与切片的长度相匹配。
总结:
- 使用
make
创建切片时,您可以明确控制切片的容量,并按长度初始化为0值,适用于需要精确控制内存分配的情况,或者在预先知道切片的最大长度时。 - 不使用
make
创建切片时,适用于快速创建切片并根据提供的元素自动确定长度的情况。这种方式更简洁,适合大多数情况。
无论使用哪种方式创建切片,都可以使用 append
函数来动态增长切片的长度。
Go 中是否使用make创建slice的区别
https://leiqi.top/2023-10-05-9d3185fd2258.html