我想声明一个常量golang 2d数组(而不是切片),但我看了其他关于这个问题的golang评论后,弄不明白。
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,而不是全局性的。
而且,语法很繁琐。
根据规格:
常数
有布尔常量、符文常量、整数常量、浮点常量、复数常量和字符串常量。
IOW,在Go中不存在{struct,array,slice,map,interface,pointer}常量。