top | item 39849846

(no title)

Sacro | 1 year ago

Go doesn't have enums.

discuss

order

randomdata|1 year ago

It doesn't have what Rust mistakenly calls enums - what everyone else in the world calls sum types, but it most definitely has enums in the traditional sense. Enum normally refers simply to assigning a number to something. That is what iota does.

pjmlp|1 year ago

Enums in the traditional sense, is what Pascal and C have been doing it for decades.

    (* Pascal in 1970 *)
    Planet = (Unknown, Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune);

    // C in 1989
    enum Planet {Unknown, Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune};
Plus type system guarantees, and in Pascal's case, run time capabilities to query enum values and ranges.

Go's hack has barely anything to do with that.