Существует два варианта, в зависимости от того, как будут использоваться константы.
Первый - создать новый тип на основе int и объявить ваши константы, используя этот новый тип, например:
type MyFlag int
const (
Foo MyFlag = 1
Bar
)
Foo
и Bar
будут иметь тип MyFlag
.Если вы хотите извлечь значение int обратно из MyFlag
, вам нужен тип coersion:
var i int = int( Bar )
Если это неудобно, используйте предложение newacct о пустом константном блоке:
const (
Foo = 1
Bar = 2
)
Foo
и Bar
являются идеальными константами, которые можно назначить для int, float и т. Д.
Это описано в Effective Go в разделе Константы.См. Также обсуждение ключевого слова iota
для автоматического назначения значений, таких как C / C ++.