Skip to content

Возвращаемый результат функции

Из следующих глав ты узнаешь:

  • что такое именованный возврат функции;

  • что такое множественный возврат функции.

Как вернуть результат функции

Функции могут возвращать результат. Для этого нужно после списка параметров функции указать тип возвращаемого результата. А в теле функции использовать оператор return, после которого указывается возвращаемое значение.

Например, мы хотим возвратить из функции сумму двух чисел.

Самое время протестировать код!

Функция add возвращает значение типа int, поэтому этот тип указан после списка параметров. В самой функции после оператора return указывается возвращаемое значение. При этом значение может быть значением переменной, литералом, либо же, как в этом случае, результатом операции или вызова функции. То есть выражение x + y определяет возвращаемое значение.

Поскольку функция возвращает значение, то при вызове функции мы можем получить это значение и передать его переменной.

Именованный возврат функции

Возвращаемый результат может быть именован.

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

Внимание! Такое поведение не рекомендуется использовать. При использовании именованных возвращаемых данных увеличивается когнитивная нагрузка при чтении исходного кода.

Множественный возврат функции

В Go функция может возвращать сразу несколько значений. В этом случае после списка параметров указывается в скобках список типов возвращаемых значений. А после оператора return располагаются через запятую все возвращаемые значения.

Самое время протестировать код!

Функция add принимает четыре параметра: два числа и две строки. Возвращает число (значение типа int) и строку. Возвращаемые значения указаны после оператора return.

Поскольку функция теперь возвращает два значения, то при вызове этой функции мы можем присвоить ее результат двум переменным.

Первое возвращаемое значение передается первой переменной age, а второе значение передается второй переменной name.

Альтернативный способ передачи переменным результатов функции указан на скриншоте.

Также в этом случае можно было бы использовать именованные результаты.

При возврате более двух результатов рекомендуем объединять результат в структуру.

Самое время протестировать код!

Таким же образом стоит объединять входящие аргументы, если их слишком много.

Ознакомься со следующими материалами для более подробного изучения темы: