首頁 >後端開發 >Golang >如何在 Go 中分配可變大小的陣列?

如何在 Go 中分配可變大小的陣列?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-18 02:05:09523瀏覽

How Can I Allocate Arrays with Variable Size in Go?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn