Enums.txt

Перечисляемый тип или перечисление - это набор констант (называемых полями перечисления), имеющих общее имя (имя перечисления).

Перечисления имеют несколько преимуществ перед обычными константами. Они не засоряют общее пространство имен и являются участниками системы типов. Параметры, у которых перечисление является типом, имеют ограниченную область допустимых значений, что помогает избегать ошибок, связанных с неверным значением параметра.

Enums.txt - это текстовый файл, который содержит перечисления, доступные для режима редактирования.

Формат файла

Каждое перечисление задается следующим образом:

enum <имя перечисления> <поля перечисления> end

имя перечисления - это любая комбинация букв, цифр и _ поля перечисления - одна или несколько строк в формате:

<имя поля> [= <значение поля>]

имя поля - любая комбинация букв, цифр и _ значение поля - число или строковый литерал, заключенный в двойные кавычки. Если отсутствует, компилятор присваивает новую константу автоматически.

enum Town
  LS = 0
  SF = 1
  LV = 2
end

Поля перечисления могут разделяться переносом строки (как в примере выше) или запятой:

enum Town
  LS = 0, SF = 1, LV = 2
end

В одном файле может быть несколько перечислений. Каждое из них должно иметь уникальное имя.

circle-exclamation

Поля перечисления

Каждое поле перечисления представляет собой константу, которая присваивается явно либо неявно. Явным образом это происходит, если после имени поля стоит знак = и допустимая константа:

Town.LS представляет число 0, Town.SF представляет число 1 и Town.LV представляет число 2.

TicTacToe.Player1 представляет строковый литерал X и TicTacToe.Player2 представляет строковый литерал O.

Если полю перечисления явным образом не присвоена константа, это происходит автоматически. Первому полю присваивается 0, второму 1, третьему 2 и т.д.:

Town.LS представляет число 0, Town.SF представляет число 1 и Town.LV представляет число 2.

Если в одном перечислении используются и явное, и неявное присвоения, это происходит по следующим правилам:

  • полю, которое следует за явно присвоенным числом, присваивается это число плюс 1:

E.A = 10, E.B = 11, E.C = 100, E.D = 101, E.E = 102

  • полю, которое следует за явно присвоенным строковым литералом, присваивается литерал, дублирующий имя поля:

Month.Jan = "January", Month.Feb = "February", Month.March = "March"

circle-exclamation

Last updated