在 Go 中分配可变大小的数组
与使用 const 声明的常量大小的数组不同,Go 不允许直接分配数组运行时确定的大小。这在以下非法代码中很明显:
n := 1 var a [n]int
但是,有一个解决方案:使用切片而不是数组。切片是对底层数组的引用,并提供动态调整大小的功能。内置 make() 函数用于创建切片及其底层数组。它需要三个参数:
通过使用 make() 创建切片,我们间接分配一个带有运行时的数组size:
n := 12 s := make([]int, n, 2*n)
在这种情况下,分配了一个大小为 2*n 的数组,s 指的是包含数组前 n 个元素的切片。
目前还不清楚为什么Go 不允许直接分配可变大小的数组,但是使用切片的解决方案提供了灵活高效的替代方案。因此,在 Go 中处理动态数据结构时,建议在大多数场景中使用切片。
以上是如何在 Go 中分配可变大小的数组?的详细内容。更多信息请关注PHP中文网其他相关文章!