Стандартный способ введения перечислений (enum) в Go - объявить настраиваемый тип и const группу с помощью iota. Поскольку переменные имеют значение по умолчанию 0, вам обычно следует начинать перечисления с ненулевого значения.
Неудачный вариант:
type Operation int
const (
Add Operation = iota
Subtract
Multiply
)
// Add=0, Subtract=1, Multiply=2
Хороший вариант:
type Operation int
const (
Add Operation = iota + 1
Subtract
Multiply
)
// Add=1, Subtract=2, Multiply=3
Есть случаи, когда использование нулевого значения имеет смысл, например, когда случай нулевого значения является желательным поведением по умолчанию.
type LogOutput int
const (
LogToStdout LogOutput = iota
LogToFile
LogToRemote
)
// LogToStdout=0, LogToFile=1, LogToRemote=2
Читайте также:
- Спецификация Go: йота (iota)
- Четыре примера использования iota в Golang
- Нетипизированные числовые константы без ограничений в Golang
Комментариев нет:
Отправить комментарий