在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中文網其他相關文章!