Свой старт нумерации в Go
Нумерацию можно сдвинуть, прибавив число
к счетчику. В первой строке блока к
iota прибавляют нужное смещение,
а следующие строки без правой части продолжают
увеличивать номер строки так же, как при
обычном счете с нуля.
Если нужны значения 1, 2 и 3,
старт задают через сумму:
const (
A = iota + 1
B
C
)
fmt.Println(A, B, C)
На первой строке iota равно 0,
поэтому A получает 1. На второй
строке iota уже 1, выражение
то же, что у A, и B становится
2. У C номер строки 2,
итог 3. Повтор выражения без правой
части копирует формулу, а не готовое число
с прошлой строки.
Смещение может быть и другим, если так удобнее для предметной области:
const (
Min = iota + 10
Mid
Max
)
fmt.Println(Min, Mid, Max)
Дан следующий код:
const (
P = iota + 5
Q
R
)
Запишите значения P, Q и R.
Даны имена Jan, Feb, Mar.
Сделайте блок констант со значениями
1, 2, 3 через сдвиг
старта и выведите Feb.
Дан следующий код:
const (
X = iota + 2
Y
)
const (
Z = iota + 2
W
)
Сравните Y и W: равны ли они.