12
如何在Go中以運行時大小分配數組?如何在Go中分配非常量大小的數組
下面的代碼是非法的:
n := 1
var a [n]int
你得到的消息prog.go:12: invalid array bound n
(或類似),而這工作得很好:
const n = 1
var a [n]int
麻煩的是,我可能不知道的大小我想要的數組直到運行時。
(順便說一句,我第一次看在回答這個問題How to implement resizable arrays in Go,但是這是一個不同的問題。)
即使反射包似乎也不允許分配動態大小的數組。我懷疑這與類型系統有關,因爲數組大小是類型的一部分,所以動態大小需要動態生成新的類型ID。 – Evan
@Evan是的,儘管我避免使用*動態*來描述這一點。嚴格地說,數組大小不是動態的:一旦創建數組大小是固定的。我想這與你無法得到切片後面的數組有關。如果可以的話,你可以看看它的類型,這將不得不重新生成。它具有某種意義。 –
我接受了我自己的答案,因爲它看起來是正確的。 –