English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Golang

Управляющие инструкции Golang

Функции и методы Golang

Структуры Golang

Срезы и массивы Golang

Строки (String) Golang

Указатели Golang

Интерфейсы Golang

Конкурентоспособность Golang

Ошибки Golang

Другие темы Golang

Имя параметра возвращаемого функцией в Go

В 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