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

Основной курс Golang

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

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

Структуры в Golang

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

Строки (String) в Golang

Пункторы в Golang

Интерфейсы в Golang

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

Исключения (Error) в Golang

Другие темы Golang

Возвращение нескольких значений в функции Go

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

Грамматика:

func function_name(parameter_list)(return_type_list){
     // code...
}

Здесь,

  • function_name:Этофункцияимя.

  • parameter-list:Оно содержит имена и типы параметров функции.

  • return_type_list:Это необязательное, оно содержит типы возвращаемых значений функции. Если используется return_type, то в функции необходимо использовать оператор return.

package main
import "fmt"
// myfunc возвращает 3 значения типа int
func myfunc(p, q int) (int, int, int) {
    return p - q, p * q, p + q
}
func main() {
    // Присваивается возвращаемому значению, три различных переменные
    var myvar1, myvar2, myvar3 = myfunc(4, 2)
    // Показывать значение
    fmt.Printf("Результат: %d", myvar1)
    fmt.Printf("\nРезультат: %d", myvar2)
    fmt.Printf("\nРезультат: %d", myvar3)
}

Вывод:

Результат: 2
Результат: 8
Результат: 6

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

В языке Go разрешается предоставлять имена возвращаемым значениям. Вы также можете использовать эти имена в коде. Не нужно писать имена с помощью оператора return, так как компилятор Go автоматически понимает, что эти переменные должны быть возвращены. Этот тип回报 называется голым возвращением. Простой возврат уменьшает повторение в программе.

Грамматика:

func function_name(para1, para2 int)(name1 int, name2 int){
    // code...
}
или
func function_name(para1, para2 int)(name1, name2 int){
   // code...
}

Здесь,name1иname2Это имя возвращаемого значения, а para1 и para2 это параметры функции.

package main
import "fmt"
// myfunc возвращает 2 значения типа int
// Здесь имя возвращаемого значения
// Это rectangle и square
func myfunc(p, q int) (rectangle int, square int) {
    rectangle = p * q
    square = p * p
    return
}
func main() {
    // Присваивается возвращаемому значению
    // Два различных переменные
    var area1, area2 = myfunc(2, 4)
    fmt.Printf("Площадь прямоугольника: %d", area1)
    fmt.Printf("\nПлощадь квадрата: %d", area2)
}

Вывод:

Площадь прямоугольника: 8
Площадь квадрата: 4