Go Enumerations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
Line 19: Line 19:
   SUN
   SUN
)
)
</syntaxhighlight>
The enumeration constants can be rendered as strings by making the enum type implement a Stringer interface:
<syntaxhighlight lang='go'>
func (dotw DayOfTheWeek) String() string {
  return ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]string{}[dotw]
}
</syntaxhighlight>
</syntaxhighlight>

Revision as of 22:40, 10 January 2024

External

Internal

Overview

Go does not have formal enums, but the language allows for sets of related, yet distinct int constants. They represent a property that has several distinct possible int values, like the days of the weeks or the months of the year. They are declared using the pre-declared constant iota:

type DayOfTheWeek int
const (
  MON DayOfTheWeek = iota
  TUE
  WED
  THU
  FRI
  SAT
  SUN
)

The enumeration constants can be rendered as strings by making the enum type implement a Stringer interface:

func (dotw DayOfTheWeek) String() string {
  return ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]string{}[dotw]
}