The basic use of iota is just what C enums do by default.
A contrived example might be:
const (
A rune = 'A' + iota
B
)
func main() {
fmt.Printf("Hello %c", B)
}
You can, of course, just write it like a C enum if you were so inclined and that willing to go out of your way to show your disinterest in something.Oh c'mon, that's a cheap shot. Your example is odd, as it doesn't really show off anything interesting; I can indeed write it as a C enum, and I can do it with less typing:
enum {
A = 'A',
B,
};
iota doesn't really do anything interesting there. Much more interesting, IMO, was the example in the article where it can be used to easily construct bitfields. That shows off the "just about any static math expression" that you point out.I think my problem with it overall is that it's weird and unexpected. Even when it can be genuinely useful, it doesn't really fit in the language as a part of syntax. Then again, I feel like that's pretty common for Go.