English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В Golang именованные возвращаемые параметры обычно называются именованными параметрами. Golang позволяет указать имя для возвращаемых или результатов параметров в签名 или определении функции. Или можно сказать, что это явное именование переменных в определении функции. В основном, это решает проблему упоминания имени переменной в return-строке.
Используя именованные возвращаемые параметры или именованные параметры, результат можно вернуть только с помощью ключевого слова return в конце функции. Когда функция должна возвращать несколько значений, обычно используется этот концепт.
Таким образом, чтобы сделать пользователя более комфортным и улучшить читаемость кода, Golang предоставляет эту функцию.
Чтобы объявить именованные результаты или возвращаемые параметры, достаточно использовать часть типа возвращаемого значения в签名 функции. Вот общая语法 объявления функции в Golang.
Синтаксис объявления функции без именованных возвращаемых параметров:
func function_name(Parameter-list)(Return_type){ // Тело функции.....
Здесь, Return_Type является опциональным и содержит тип возвращаемых значений функции. Если в функции используется Return_Type, то в функции также необходимо использовать return-строку.
Синтаксис объявления функции с именованными возвращаемыми параметрами:
func function_name(Parameter-list)(result_parameter1 data__type,result_parameter2 data_type,…。){ // Тело функции….. // Возврат
Это (result_parameter1 data__type, result_parameter2 data_type, ...) является списком именованных возвращаемых параметров и их типов. Вы можете объявить n именованных возвращаемых параметров.
Пример:В следующем примере программы функция func calculator(a, b int) (mul int, div int) содержит именованные возвращаемые параметры. В конце функции return-строка не содержит никаких параметров. Компилятор Go автоматически возвращает параметры.
package main import "fmt" // Метод Main func main() { // здесь вызывается функция // функция возвращает два значения m, d := calculator(105, 7) fmt.Println("105 * 7 = ", m) fmt.Println("105 / 7 = ", d) // функция с命名ными параметрами func calculator(a, b int) (mul int, div int) { // здесь достаточно простого присваивания // и инициализировать его значение mul = a * b div = a / b // здесь используется ключевое слово return // без результатов параметров return
Вывод:
105 * 7 = 735 105 / 7 = 15
Если все названные возвращаемые параметры имеют общие или одинаковые типы, можно указать общие типы данных. Сравните下面的 код с прочитанным примером, чтобы лучше понять.
// функция с命名ными параметрами func calculator(a, b int) (mul, div int) {
здесь,mulиdivявляются типом int. Таким образом, вы также можете声明 названные параметры с общим типом данных, например, функциональными переменными (т.е.,aиb
Использование названных возвращаемых параметров повысит читаемость кода, так как можно сразу узнать возвращаемые параметры, просто прочитав подпись функции.
После использования названных возвращаемых параметров оператор return обычно называетсяNaked return
По умолчанию, в Golang все названные переменные инициализируются нулевыми значениями, и функция может использовать их. Если функция не изменяет значения, то они автоматически возвращаются в виде нулевых значений.
Если вы используетеКороткий оператор объявления (:=)Инициализация названных возвращаемых параметров приведет к ошибке, так как они уже инициализированы компилятором Go. Поэтому вы можете использовать простое присваивание значений названным возвращаемым параметрам.
// функция с命名ными параметрами func calculator(a, b int) (mul int, div int) { // здесь будет выведена ошибка // так как уже определены параметры // в签名 функции mul := a * b div := a / b // здесь используется ключевое слово return // без результатов параметров return
Названные возвращаемые параметры или оператор return в стиле "нaked return" применимы только к коротким签名м функций. Для более длинных функций явно возвращайте результатные параметры (не используйте названные возвращаемые параметры) для поддержания читаемости кода.
Для命名返回 параметров необходимо использовать оператор return в стиле "нaked return".
Сопутствующие знания:Функции в Golang