在Go 中分配具有動態運行時大小的陣列
與許多其他程式語言不同,直接分配具有運行時大小的陣列在Go 中是不可能的。但是,還有一種涉及利用切片的替代解決方案。
以下範例說明了這個問題:
n := 1 var a [n]int // Illegal array bound n
在 Go 中,陣列大小必須是常數表達式。為了克服這個限制,您可以使用 make 函數建立切片:
n := 12 s := make([]int, n, 2*n) // Creates a slice and underlying array with size 2*n
在此範例中,s 被初始化為容量為 2*n、長度為 n 的切片。底層數組由 Go 分配,並且隱藏,無法直接操作。
在 Go 中,切片比數組更受青睞,因為它們具有動態特性,並且能夠根據需要增長或縮小。它們在處理動態資料方面提供了更大的靈活性和效率。透過利用切片,您可以繞過固定大小數組的限制,並在運行時使用動態大小的陣列。
以上是如何在 Go 中分配具有動態運行時大小的陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!