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