Golang:声明一个常量

时间:2014-07-19 09:31:05

标签: go const conventions

在Go中声明单个常量的首选方法是什么?

1)

const myConst

2)

const (
        myConst
)

gofmt接受了这两种方式。两种方式都可以在 stdlib 中找到,但1)使用的更多。

1 个答案:

答案 0 :(得分:6)

第二种形式主要用于对几个常量声明进行分组。

如果你只有一个常数,那么第一个表格就足够了。

例如archive/tar/reader.go

const maxNanoSecondIntSize = 9

但在archive/zip/struct.go

// 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

  

也可以使用importtypevar和不止一次。

确实如此,但您会发现iota仅在constant declaration中使用,如果您需要多组连续的整数常量,这会强制您定义多个const ()块。