В Go концепция перечисления не поддерживается напрямую, как в некоторых других языках программирования. Однако есть несколько способов добиться аналогичной функциональности. Вот несколько подходов, которые вы можете использовать:
-
Использование констант:
package main import "fmt" const ( Sunday = "Sunday" Monday = "Monday" Tuesday = "Tuesday" Wednesday = "Wednesday" Thursday = "Thursday" Friday = "Friday" Saturday = "Saturday" ) func main() { day := Sunday fmt.Println(day) // Output: Sunday } -
Использование iota:
package main import "fmt" type DayOfWeek int const ( Sunday DayOfWeek = iota Monday Tuesday Wednesday Thursday Friday Saturday ) func main() { day := Sunday fmt.Println(day) // Output: 0 } -
Использование карты:
package main import "fmt" type DayOfWeek int var days = map[DayOfWeek]string{ 0: "Sunday", 1: "Monday", 2: "Tuesday", 3: "Wednesday", 4: "Thursday", 5: "Friday", 6: "Saturday", } func main() { day := DayOfWeek(0) fmt.Println(days[day]) // Output: Sunday }
Эти примеры демонстрируют различные способы эмуляции перечислений в Go. В первом подходе используются константы, во втором — йота, а в третьем — карта. У каждого подхода есть свои преимущества и недостатки, поэтому вы можете выбрать тот, который лучше всего подходит для вашего конкретного случая использования.