主旨が違うかもしれないんだけど、そういうのは go:generate + stringer の出番と違うかなと思った。
package main import "fmt" type SkuNameEnum int //go:generate stringer -type=SkuNameEnum const ( Free SkuNameEnum = iota PerNode Premium Standalone Standard Unlimited ) func main(){ for i := Free ; i <= Unlimited ; i++ { fmt.Println( i ) } }
$ go generate $ go build $ ls foo.go skuname.exe* skunameenum_string.go $ skuname.exe Free PerNode Premium Standalone Standard Unlimited $