我试过了:
const ascii = "abcdefghijklmnopqrstuvwxyz"
const letter_goodness []float32 = { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 }
const letter_goodness = { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 }
const letter_goodness = []float32 { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 }
第一个声明和初始化可以正常工作,但是第二个、第三个和第四个不能工作。
如何声明和初始化浮点数的常量数组?
发布于 2012-10-30 19:00:48
数组本质上不是不可变的;您不能使其成为常量。
你能得到的最近值是:
var letter_goodness = [...]float32 {.0817, .0149, .0278, .0425, .1270, .0223, .0202, .0609, .0697, .0015, .0077, .0402, .0241, .0675, .0751, .0193, .0009, .0599, .0633, .0906, .0276, .0098, .0236, .0015, .0197, .0007 }
注意[...]
而不是[]
:它确保你得到一个(固定大小)数组,而不是一个切片。所以值不是固定的,但大小是固定的。
发布于 2016-12-23 01:58:58
正如其他人所提到的,没有官方的Go构造。我能想象到的最接近的情况是返回一个切片的函数。通过这种方式,您可以保证没有人会操作原始切片的元素(因为它是“硬编码”到数组中的)。
我已经缩短了你的切片,使it...shorter...:
func GetLetterGoodness() []float32 {
return []float32 { .0817,.0149,.0278,.0425,.1270,.0223 }
}
https://stackoverflow.com/questions/13137463
复制相似问题