|
|
|
|
|
by randomdata
783 days ago
|
|
> That's not a type. Nobody said it was. Reaching already? As before, enums are not a type, they are a numbering mechanism. Literally. There is an associated type in which to hold the numbers, but that's not the enum itself. This is true in both C and Go, along with every other language with enums under the sun. > The compiler can tell the difference between `enum daysOfWeek` and `enum monthsOfYear`. Sure, just as in Go: type Day int
const (
Monday Day = iota
Tuesday
// ...
)
type Month int
const (
January Month = iota
February
// ...
)
func month(m Month) {}
func main() {
month(January) // OK
month(Monday) // Compiler error
}
> Go doesn't store this difference - `Monday` is no different in type than `January`.Are you, perhaps, mixing up Go with Javascript? > How can it? By, uh, using its type system...? A novel concept, I know. |
|