Основы Go
2026-02-26 16:55 Diff

В Go есть только одна конструкция для организации циклов — for. Она заменяет собой и while, и do while из других языков. С её помощью можно реализовать любые виды повторений.

Классический цикл со счётчиком

Наиболее распространённый способ перебора:

Здесь:

  • i := 0 — инициализация переменной.
  • i < 5 — условие выполнения.
  • i++ — шаг итерации.

Цикл с только условием

Такой for работает как while в других языках:

Бесконечный цикл

Обычно используется с break или return внутри тела, чтобы остановить выполнение.

Повторение действий с помощью range

В Go существует альтернативный вариант цикла для задачи повторения какого-то действия n раз. Вместо привычного счётчика i := 0; i < n; i++, можно использовать конструкцию for range.

Если понадобится использовать номер итерации, вы можете явно объявить переменную:

Такой цикл начинается с 0 и заканчивается на n - 1 — как в обычном счётчике.

Перебор строки посимвольно

Цикл for ... range позволяет пройтись по строке символ за символом. Внутри цикла доступны:

  • Индекс символа.
  • Сам символ в виде rune (Unicode).

Что делает range?

  • Возвращает индекс текущего элемента (в байтах).
  • Возвращает символ в виде rune — это Unicode-код символа.

Строка в Go — это последовательность байт, но range работает корректно с UTF-8 и возвращает именно символы (а не байты):

Индексы 0 и 2 — потому что символы г и о занимают по два байта каждый.

Если не нужен индекс, его можно опустить с помощью _:

Цикл range будет особенно полезен при работе с коллекциями (срезами, словарями и т.п.), к которым мы перейдём в следующих уроках.