Циклы и функции

Объявление функций, параметры, несколько возвращаемых значений и область видимости

Содержание курса

В предыдущем уроке вы управляли потоком выполнения через циклы: повторяли блок кода, пока выполняется условие, и досрочно выходили через break. Теперь пора научиться выносить логику в отдельные именованные блоки — функции. Это принципиальный шаг: код перестаёт быть одним длинным main, а отдельные задачи получают собственное имя и границы.

Синтаксис объявления функции: параметры и возвращаемый тип

Функция в Go объявляется ключевым словом func, за ним — имя, список параметров в круглых скобках и, если функция что-то возвращает, тип результата:

func add(a int, b int) int {
    return a + b
}

Здесь a и b — параметры типа int, а int после закрывающей скобки — тип возвращаемого значения. Когда выполнение доходит до return a + b, функция немедленно завершается и передаёт вычисленное значение обратно туда, откуда её вызвали.

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

func add(a, b int) int {
    return a + b
}

Оба варианта полностью эквивалентны; сокращённая форма просто убирает дублирование.

Вызов функции выглядит предсказуемо:

result := add(3, 5)
fmt.Println(result) // 8

add(3, 5) — это выражение, которое вычисляется в 8, и это значение присваивается result.

Если функции нечего возвращать — например, она только печатает что-то — тип после скобок просто не указывается:

func greet(name string) {
    fmt.Println("Hello,", name)
}

В таком случае return можно писать без аргумента или вовсе опустить — функция завершится, когда выполнение дойдёт до закрывающей фигурной скобки.

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

Начать заново?

Помощник начнёт новый диалог по этой задаче. Текущая переписка останется в истории до конца срока хранения.

О переписке

Можно приложить до трёх фото PNG, JPEG или WebP по 5 МБ.

Переписка и фото хранятся 90 дней после последнего принятого сообщения. Преподаватель получит доступ к диалогу, когда вы попросите его помочь.

Проверка решения остаётся отдельным действием.