enum не является встроенным типом данных в Go (Golang), но вы можете добиться аналогичной функциональности, используя набор констант или собственные типы. Вот несколько распространенных методов реализации перечислений в Go:
Метод 1: использование констант
package main
import "fmt"
const (
Sunday = 0
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
)
func main() {
day := Tuesday
fmt.Println(day) // Output: 2
}
Метод 2: использование iota и пользовательских типов
package main
import "fmt"
type DayOfWeek int
const (
Sunday DayOfWeek = iota
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
)
func main() {
day := Tuesday
fmt.Println(day) // Output: 2
}
Метод 3. Использование карты
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(2)
fmt.Println(days[day]) // Output: Tuesday
}
Метод 4. Использование фрагмента
package main
import "fmt"
type DayOfWeek int
var days = []string{
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
}
func main() {
day := DayOfWeek(2)
fmt.Println(days[day]) // Output: Tuesday
}