Шаг 10.
Язык программирования Go.
Объявление констант в Go

    На этом шаге продолжим рассматривать основы языка Go и познакомимся с объявлением констант.

    Константы представляют собой выражения, значения которых известны компилятору и вычисление которых гарантированно происходит во время компиляции, а не во время выполнения. Базовым типом каждой константы является фундаментальный тип: логическое значение, строка или число. Результаты всех арифметических и логических операций, а также операций сравнения с операндами-константами также являются константами. Константы объявляются с помощью ключевого слова const. Приведем несколько примеров объявлений:

const limit = 512 // константа; совместима с любыми числовыми типами
const top uint16 = 1421 // константа; тип: uint16  

    Обычной практикой считается не указывать тип явно, если только не требуется использовать какой-то конкретный тип, который не определяется компилятором. Типизированные числовые константы (такие как top в примере выше) могут использоваться только в выражениях с числовыми значениями того же типа (если явно не преобразовывать их тип). Нетипизированные числовые константы могут использоваться в выражениях с числовыми значениями любых встроенных типов (например, константу limit можно использовать в выражениях с целыми или вещественными числами).

    Когда требуется определить несколько констант, их можно сгруппировать в одно объявление с единственным ключевым словом const. В случаях, когда требуется лишь объявить константы с отличающимися значениями, и при этом сами значения не играют никакой роли, можно воспользоваться поддержкой перечислений .

    Например, приведенные ниже фрагменты объявляют одни и те же константы:

   const Zero = 0       |
   const One = 1        |
   const Two = 2        |
                        |
                        |

   const (              |
     Zero = 0           |
     One = 1            |
     Two = 2            |
   )                    |

   const (
     Zero = iota // 0
     One         // 1
     Two         // 2 
   )

    Генератор констант iota – это предопределенный идентификатор, представляющий последовательность нетипизированных целочисленных значений. Значение этого идентификатора сбрасывается в нуль при встрече каждого нового ключевого слова const и увеличивается для каждой последующей константы в группе. Поэтому в правом фрагменте выше все константы получат значение iota (One и Two – неявно). Объявление константы Zero следует за ключевым словом const, значение iota будет сброшено в нуль и присвоено константе Zero. Константа One также получит значение iota, но на этот раз оно будет увеличено на 1. Аналогично константа Two получит значение iota, которое к этому моменту станет равно 2.

    Если в правом фрагменте убрать явное присваивание значения iota, константа Zero получит значение 0, константа One получит значение константы Zero, и константа Two получит значение константы One – все константы получат значение 0.

    Аналогично, если константе Zero присвоить значение 2, все константы в этой группе получат значение 2. Eсли константе One присвоить значение 4, константа Zero получит значение 0 (так как она является первой в группе и ей явно не назначено какое-либо другое значение или значение iota), константа One получит значение 4 (указанное явно), и константа Two значение предыдущей константы, т.е. 4.

    На следующем шаге рассмотрим объявление переменных в Go.


Предыдущий шаг Содержание Следующий шаг