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

Объявить именованные возвращаемые параметры
Чтобы объявить именованный результат или возвращаемый параметр, просто используйте часть возвращаемого типа сигнатуры функции. Ниже приведен общий синтаксис объявления функции в Golang. Синтаксис объявления функции без именованных возвращаемых параметров:
func function_name(Parameter-list)(Return_type){
// function body.....
}
Здесь Return_Type является необязательным и содержит тип значения, возвращаемого функцией. Если вы используете Return_Type в своей функции, то вам необходимо использовать оператор return в своей функции.
Синтаксис объявления функции с именованным возвращаемым аргументом следующий:
func function_name(Parameter-list)(result_parameter1 data-_type, result_parameter2 data_type, ….){
// function body…..
return
}
Здесь (result_parameter1 data-_type, result_parameter2 data_type, ….) — это список возвращаемых аргументов, названных вместе с их типами. Вы можете объявить n-ное количество именованных возвращаемых параметров.

Пример: Пример: В приведенной ниже программе строка кода func calculator(a, b int) (mul int, div int) содержит именованные возвращаемые аргументы. Оператор return в конце функции не содержит никаких параметров. Компилятор Go автоматически вернет параметры.
// Chương trình Go mình họa
// cách dùng đối số trả về được đặt tên
package main
import "fmt"
// Phương thức chính
func main() {
// tại đây gọi hàm này
// hàm trả về hai giá trị
m, d := calculator(105, 7)
fmt.Println("105 x 7 = ", m)
fmt.Println("105 / 7 = ", d)
}
// hàm có các đối số được đặt tên
func calculator(a, b int) (mul int, div int) {
// tại đây phép gán đơn giản sẽ
// khởi tạo giá trị cho nó
mul = a * b
div = a / b
// tại đây bạn sẽ có từ khóa return
// không có bất kỳ tham số kết quả nào
return
}
Результат:
105 x 7 = 735
105 / 7 = 15
Важное примечание:
- Если типы всех возвращаемых аргументов имеют общие имена или одинаковы, можно указать общий тип данных. Для лучшего понимания сравните приведенный ниже код с примером, который вы прочитали выше.
// hàm có đối số đã được đặt tên
func calculator(a, b int) (mul, div int) {
- Здесь переменные mul и div имеют тип int . Таким образом, вы также можете объявлять именованные аргументы с универсальными типами данных как функциональные переменные (например, a и b).
- Использование именованных возвращаемых параметров улучшает читаемость кода, поскольку о возвращаемых параметрах можно узнать, просто прочитав сигнатуру функции.
- После использования именованного параметра возврата оператор возврата часто называют голым или открытым возвратом .
- По умолчанию Golang определяет все именованные переменные со значением ноль, и функции смогут их использовать. В случае, если функция не изменяет значения, автоматически возвращается нулевое значение.
- Если вы используете оператор короткого объявления ( := ) для инициализации именованных возвращаемых параметров, возникнет ошибка, поскольку он уже инициализирован компилятором Go. Таким образом, вы можете использовать простое присваивание ( = ) для присвоения значений именованным возвращаемым параметрам.
// hàm có đối số được đặt tên
func calculator(a, b int) (mul int, div int) {
// tại đây, nó sẽ báo lỗi
// dưới dạng tham số đã được xác định
// trong chữ ký hàm
mul := a * b
div := a / b
// tại đây bạn có từ khóa return
// không có bất kỳ tham số kết quả nào
return
}
- Именованные возвращаемые аргументы или минимальные операторы возврата подходят только для коротких сигнатур функций. Для более длинных функций явно возвращайте параметры результата (не используйте именованные возвращаемые параметры), чтобы сохранить читаемость кода.
- В случае именованных возвращаемых аргументов требуется минимальный или простой оператор возврата.