In Go, enumerated constants are created using the iota
enumerator. Since iota
can be part of an expression and expressions can be implicitly repeated, it is easy to build intricate sets of values.
Here is one example I found, hope it might be useful for you.
基础知识讲的很详细