在Go中声明单个常量的首选方法是什么?
1)
const myConst
2)
const (
myConst
)
gofmt
接受了这两种方式。两种方式都可以在 stdlib 中找到,但1)使用的更多。
答案 0 :(得分:6)
第二种形式主要用于对几个常量声明进行分组。
如果你只有一个常数,那么第一个表格就足够了。
const maxNanoSecondIntSize = 9
// Compression methods.
const (
Store uint16 = 0
Deflate uint16 = 8
)
这并不意味着您必须在一个const ()
中对所有常量进行分组:当您使用iota (successive integer)初始化常量时,每个块都会计数。
例如,请参阅cmd/yacc/yacc.go
// flags for state generation
const (
DONE = iota
MUSTDO
MUSTLOOKAHEAD
)
// flags for a rule having an action, and being reduced
const (
ACTFLAG = 1 << (iota + 2)
REDFLAG
)
dalu添加了the comments:
确实如此,但您会发现iota
仅在constant declaration中使用,如果您需要多组连续的整数常量,这会强制您定义多个const ()
块。