Все вопросы

11 Типы и значения

Как задать набор связанных констант?

В блоке const идентификатор iota равен номеру строки и начинается с нуля. Каждая следующая строка без выражения повторяет предыдущее и увеличивает iota. Так получают перечисление без ручной нумерации.

Если ноль не должен быть «настоящим» состоянием, первой константой часто ставят имя вроде Unknown. Тогда забытая нулевая переменная не притворяется рабочим режимом.

Пример

Go

Status через iota

package main

import "fmt"

type Status int

const (
    Unknown Status = iota
    Ready
    Running
    Done
)

func main() {
    fmt.Println(Unknown, Ready, Running, Done)
}