Основы Go
2026-02-26 18:25 Diff

В Go, кроме привычного if, есть ещё одна конструкция ветвления — switch. Она используется для выбора одного из нескольких возможных путей выполнения кода. На первый взгляд switch в Go похож на аналогичную конструкцию из других языков (например, C или Java), но его поведение отличается в важных деталях.

Вывод:

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

Можно использовать switch без выражения. В этом случае он работает как if-else if, проверяя условия по порядку:

Вывод:

Такой вариант удобен, когда нужно проверить набор условий, а не одно значение.

Ключевое слово fallthrough

В Go по умолчанию не происходит проваливания в следующий case, как это бывает в других языках. Но если вы хотите принудительно продолжить выполнение следующего блока, можно использовать fallthrough:

Вывод:

Ключевое слово fallthrough всегда выполняет следующий case, даже если его условие не подходит. Это может привести к неожиданному поведению, поэтому используется редко и осознанно.