
Proposal: Go 2 enum type - srfrog
https://github.com/golang/go/issues/28438
======
breakingcups
The only thing I want from enums in Go is to be able to specify a list of
valid states for a certain datatype, optionally specifying the underlying
integer value.

Go is currently lacking this because:

* Regular const expressions with iota aren't enough as I can assign those to other data types accidentally and the compiler won't complain

* Const expressions with an explicit type and iota aren't enough as I have to specify the type every possible value, rather than just grouping them all under one "type umbrella" so to speak.

* All const expressions (typed or untyped) can be scattered throughout the program in an inconsistent manner

This proposal makes no sense to me whatsoever though. It's definitely not what
I would describe as an enum. The other proposal it links to however makes a
lot more sense. It's a shame a lot of Go developers seem to come at this issue
from a C enum perspective which brings a lot of baggage while there are enums
in other languages that are a lot better examples of what enums should be in
my opinion.

