РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
22 of 1593 menu

Идентификатор iota

Идентификатор iota в Go представляет собой генератор последовательных целочисленных констант, который используется внутри объявлений const. При каждом появлении iota в блоке const его значение увеличивается на единицу, начиная с нуля. Это позволяет удобно создавать перечисления и наборы связанных констант без явного указания их числовых значений. Идентификатор iota сбрасывается до нуля при начале каждого нового блока const.

Синтаксис

const ( value1 = iota // 0 value2 = iota // 1 value3 = iota // 2 )

При объявлении нескольких констант в одном блоке, каждое последующее использование iota увеличивает его значение на единицу.

Пример

Давайте создадим перечисление дней недели с помощью iota:

package main import "fmt" func main() { const ( Monday = iota // 0 Tuesday = iota // 1 Wednesday = iota // 2 Thursday = iota // 3 Friday = iota // 4 Saturday = iota // 5 Sunday = iota // 6 ) fmt.Println(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) }

Результат выполнения кода:

0 1 2 3 4 5 6

Пример

iota можно использовать для создания битовых масок, где каждая константа представляет отдельный бит:

package main import "fmt" func main() { const ( Read = 1 << iota // 1 Write = 1 << iota // 2 Execute = 1 << iota // 4 ) fmt.Println(Read, Write, Execute) }

Результат выполнения кода:

1 2 4

Пример

В блоке const можно опускать повторяющееся выражение, тогда последующие константы будут использовать то же выражение, что и предыдущая:

package main import "fmt" func main() { const ( a = iota * 2 // 0 b // 2 c // 4 d // 6 ) fmt.Println(a, b, c, d) }

Результат выполнения кода:

0 2 4 6

Пример

iota сбрасывается при каждом новом блоке const, даже если они находятся в одном объявлении:

package main import "fmt" func main() { const ( First = iota // 0 Second = iota // 1 ) const ( Third = iota // 0 Fourth = iota // 1 ) fmt.Println(First, Second, Third, Fourth) }

Результат выполнения кода:

0 1 0 1

Смотрите также

  • конструкцию const,
    которая объявляет константы в Go
  • конструкцию var,
    которая объявляет переменные
  • конструкцию type,
    которая объявляет пользовательские типы
  • конструкцию blank-identifier,
    которая используется для игнорирования значений
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить