Выражения и константы

Практическое освоение арифметических операций, форматирования вывода и работы с константами в Go.

Что изучим

  • Арифметические операции и особенности типизации
  • Операторы инкремента/декремента и их отличия от других языков
  • Побитовые операции для работы с двоичным представлением
  • Пакет fmt и форматированный вывод
  • Продвинутое форматирование чисел и таблиц
  • Константы, iota и битовые флаги

Основные концепции

Целочисленное деление: когда оба операнда целые, результат всегда целое число без дробной части. Для вещественного результата нужно явное приведение хотя бы одного операнда к float64.

Строгая типизация: нельзя смешивать типы без явного приведения — даже int32 и int64 несовместимы напрямую. Это предотвращает ошибки и делает код предсказуемым.

Инкремент только постфиксный: в Go разрешён только x++, но не ++x. Это statement, а не expression — нельзя использовать в выражениях вроде y := x++.

Пакет fmt: основной инструмент форматированного вывода. Универсальный спецификатор %v работает с любым типом, %.2f контролирует точность float, %03d дополняет нули слева.

Константы — не переменные: они встраиваются в код при компиляции, не занимают память в runtime и работают быстрее. Нетипизированные константы гибко адаптируются к контексту использования.

iota — генератор последовательностей: начинается с 0, увеличивается на 1 для каждой строки. Сбрасывается в каждом новом блоке const. Мощный инструмент для перечислений, битовых флагов и размеров файлов.