Перейти к основному содержимому

Возвращаемые значения

Функция может отправить значение обратно в вызывающий код. Для этого объявите тип данных возвращаемого значения (int, string и так далее) в сигнатуре функции и используйте ключевое слово return в теле функции.

Синтаксис return

main.go
func FunctionName(param1 type, param2 type) type {
  // code to be executed
  return output
}

Пример возврата значения из функции

Эта функция myFunction() принимает два целых числа, x и y, складывает их (x + y) и возвращает сумму как int.

Пример

Prompt
Создайте функцию myFunction, которая принимает два значения int и возвращает их сумму. Выведите результат её вызова с аргументами 1 и 2.
Вывод: Программа на Go и захваченный вывод

Именованные возвращаемые значения

Go также позволяет дать возвращаемому значению имя.

В этом примере возвращаемое значение называется result и имеет тип int. Поскольку у него уже есть имя, достаточно простого return. Такое использование return без имени переменной называется «голым» return.

Пример

Prompt
Создайте функцию с именованным возвращаемым значением result. Сложите два параметра типа int и используйте «голый» оператор return (naked return).
Вывод: Программа на Go и захваченный вывод

Сохранение возвращаемого значения в переменной

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

Пример

Prompt
Создайте функцию с именованным возвращаемым значением. Сохраните возвращённое значение в переменной total и выведите её.
Вывод: Программа на Go и захваченный вывод

Несколько возвращаемых значений

Функция Go не ограничена одним возвращаемым значением: она может возвращать сразу несколько.

Пример

Эта функция myFunction() возвращает два значения: целое число с именем result и строку с именем txt1.

Prompt
Создайте функцию, которая возвращает и int, и string. Передайте 5 и "Привет", верните x+x и y+", мир!". Выведите оба значения.
Вывод: Программа на Go и захваченный вывод

Пример

Два возвращаемых значения можно сразу присвоить двум переменным, в данном случае a и b.

Prompt
Сохраните несколько возвращаемых функцией значений в отдельные переменные a и b, затем выведите их.
Вывод: Программа на Go и захваченный вывод

Пример

Иногда вам нужна только часть того, что возвращает функция. Напишите символ подчёркивания (_) вместо значения, которое хотите пропустить. Здесь он отбрасывает первое значение.

Prompt
Используйте пустой идентификатор _, чтобы пропустить первое возвращаемое значение функции, которая возвращает два значения. Выведите только строку.
Вывод: Программа на Go и захваченный вывод

Пример

На этот раз символ подчёркивания стоит на второй позиции, поэтому второе возвращаемое значение (txt1) игнорируется.

Prompt
Используйте пустой идентификатор _, чтобы пропустить второе возвращаемое значение. Выведите только результат типа int.
Вывод: Программа на Go и захваченный вывод