Menu
Coddy logo textTech

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

Часть раздела Основы путешествия по GO на Coddy — урок 57 из 109.

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

Создайте функцию с именованными возвращаемыми значениями:

func divide(a, b int) (quotient int, remainder int) {
    quotient = a / b
    remainder = a % b
    return  // "голый" возврат
}

func main() {
    q, r := divide(7, 3)
    fmt.Println("7 ÷ 3 =", q, "with remainder", r)
}

Вывод такой же, как и раньше:

7 ÷ 3 = 2 with remainder 1

Именованные возвращаемые значения инициализируются нулевыми значениями и им можно присваивать значения напрямую в теле функции.

challenge icon

Задание

Новичок

В этом испытании вы попрактикуетесь в использовании именованных возвращаемых значений в функциях Go.

Допишите функцию getPersonInfo, которая возвращает имя человека, возраст и информацию о том, является ли он студентом. Функция уже имеет именованные возвращаемые параметры, но вам нужно присвоить им значения.

Функция должна возвращать предопределенные значения для человека по имени 'Alex', которому 25 лет и который является студентом.

Шпаргалка

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

func divide(a, b int) (quotient int, remainder int) {
    quotient = a / b
    remainder = a % b
    return  // "голый" return
}

Именованные возвращаемые значения инициализируются их нулевыми значениями и могут быть назначены непосредственно в теле функции.

Попробуйте сами

package main

import "fmt"

// Эта функция использует именованные возвращаемые значения
func getPersonInfo() (name string, age int, isStudent bool) {
	// TODO: Присвойте значения именованным возвращаемым переменным
	// name должно быть "Alex"
	// age должно быть 25
	// isStudent должно быть true
	
	// Оператор "return" без аргументов вернет именованные возвращаемые значения
	return
}

func main() {
	name, age, isStudent := getPersonInfo()
	fmt.Printf("Name: %s\nAge: %d\nStudent: %t\n", name, age, isStudent)
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы