Go Enumerations: Difference between revisions
Jump to navigation
Jump to search
Line 5: | Line 5: | ||
* [[Go_Constants#Enumerations|Constants]] | * [[Go_Constants#Enumerations|Constants]] | ||
* [[Go_Language#Enumerations|Go Language]] | * [[Go_Language#Enumerations|Go Language]] | ||
* [[Go_iota|<tt>iota</tt>]] | |||
=Overview= | =Overview= |
Revision as of 22:27, 12 September 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
)
To make the enumeration constants visible outside the package, they need to start with a capital letter.
Conversion to and from string representations:
type DayOfTheWeek int
const (
MON DayOfTheWeek = iota
TUE
WED
THU
FRI
SAT
SUN
)
var dayOfTheWeekToString = []string{
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday",
}
func (s DayOfTheWeek) String() string {
return dayOfTheWeekToString[s]
}
func StringToDayOfTheWeek(s string) DayOfTheWeek {
for i, v := range dayOfTheWeekToString {
if s == v {
return DayOfTheWeek(i)
}
}
return DayOfTheWeek(-1)
}