Нумерация с нуля в блоке констант в Go
Счетчик в блоке констант начинает с нуля
и прибавляет единицу на каждой строке.
Для этого в первой строке блока пишут
выражение со специальным именем iota:
оно подставляет номер текущей строки, считая
с нуля сверху вниз внутри этого блока.
Следующие строки могут опустить правую часть:
тогда снова используется iota, но уже
с увеличенным номером. Зададим три цвета:
const (
Red = iota
Green
Blue
)
fmt.Println(Red, Green, Blue)
На экране три числа: 0, 1 и 2.
У Red явно стоит iota, у
Green и Blue справа пусто,
поэтому для них счетчик идет дальше по
тому же правилу. Каждый новый блок констант
снова начинает нумерацию с нуля.
Тот же прием работает, если блок стоит внутри функции: правило строк не меняется:
func main() {
const (
Red = iota
Green
Blue
)
fmt.Println(Red, Green, Blue)
}
Дан следующий код:
const (
Low = iota
Mid
High
)
Напишите значения Low, Mid
и High.
Даны имена North, East,
South, West. Пронумеруйте
их с нуля в одном блоке констант и
выведите East.
Дан следующий код:
const (
A = iota
B
)
const (
C = iota
D
)
Скажите, чему равны B и D.