Введение в провал ветки в Go
Провал передает управление в следующую ветку, даже если ее значение не совпало. Обычно после совпадения выполняют только одну ветку и выходят из блока выбора. Отдельная команда языка позволяет не выходить сразу, а продолжить в соседней ветке ниже по списку.
Такой прием относится только к выбору по
значению, где в заголовке стоит выражение
и ветки case сравнивают его с константами.
Вы уже разбирали переключатель типов для
интерфейса: там другие правила, и провала
между ветками нет. В этом разделе сначала
закрепим поведение при обычном выборе по
числу или строке.
Провал нужен редко: чаще явно дублируют команды или выносят общий код в отдельную функцию. Иногда им удобно сгруппировать несколько меток, которые должны выполнить один и тот же хвост веток ниже. Важно помнить, что переход идет строго в одну следующую ветку, а не сразу через весь список.
Дальше увидим команду в конце ветки, которая передает ход соседней без новой проверки, разберем цепочку из нескольких провалов и отдельно проверим, почему в переключателе типов такой переход запрещен. В конце закрепим навык на коротких задачах без подсказки имени команды в формулировке.