Что такое iota в Go?

Junior
981 просмотров
AFK Offer AI

iota — генератор последовательных целых чисел внутри блока const. Начинается с 0, инкрементируется на каждой строке.

const (
    Read    = 1 << iota // 1
    Write               // 2
    Execute             // 4
)

const ( _ = iota // 0, пропускаем KB = 1 << (10 * iota) // 1024 MB // 1048576 GB // 1073741824 )

Типичное использование — enum-подобные константы:

type Status int

const ( Pending Status = iota // 0 Active // 1 Disabled // 2 )

iota сбрасывается в 0 в каждом новом блоке const.

Следующий вопрос

Что такое sync.Map?