-3
我想聲明一個常量golang 2d數組(不是片),但我無法弄清楚,看過其他golang對這個問題的評論。Golang常量2d數組語法失敗
type fooT [1][1]float64
const BAR fooT = {[1]float64 {.01}}
給出錯誤fubar.go:5: syntax error: unexpected {
。但以下罰款編譯:
type fooT [1][1]float64
var BAR = fooT {[1]float64 {.01}}
首先,我不明白爲什麼我要重新聲明冗餘底層的數組,它似乎golang編譯器知道的類型,因爲它如果我改變它給出了一個錯誤。但是,爲什麼我不能讓這個數組是一個常量?它是R/O,不是全球性的。
而且,語法很麻煩。
關於二維語法:'var foo = [2] [2] int {{1,2},{3,4}}' – thwd 2015-03-31 09:48:30
首選答案沒有洞察力。下一個答案指出編譯器錯誤:它是一個無效的const,但並不表示不允許數組常量的目的,這在必要時顯得非常明顯。這不是編譯器錯誤:它是一個無效的語法錯誤,不是無效的常量。既不回答爲什麼糟糕的編譯器語法,爲什麼數組不能爲常量的問題。這些並不是令人滿意的答案,IMO。 – user3431262 2015-03-31 10:21:30