Именованные возвращаемые значения
Часть раздела Основы путешествия по 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Именованные возвращаемые значения инициализируются нулевыми значениями и им можно присваивать значения напрямую в теле функции.
Задание
НовичокВ этом испытании вы попрактикуетесь в использовании именованных возвращаемых значений в функциях 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)
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравнения — Часть 1Операторы сравнения — Часть 2Логический оператор ANDЛогический оператор ORЛогический оператор NOTОсновы приоритета операторовИтоги: выполнение сравнений7Управляющие конструкции: Циклы
Что такое цикл `for`Цикл `for` — основыЦикл `for` — только условиеКлючевое слово `break`Ключевое слово `continue`Вложенные циклыИтоги — повторение действий2Переменные и базовые типы данных
Что такое переменнаяВывод типов с помощью `:=`Целые числа (int)Числа с плавающей точкойЛогический тип (Booleans)СтрокиНулевые значения (Zero Values)КонстантыПравила именованияИтоги: переменные и типы5Основы ввода-вывода
Форматированный выводСпецификаторы форматаВывод типовБазовый ввод данных пользователемИтоги: ввод и вывод8Функции
Понимание функцийОбъявление функцииВызов функцийПараметры функцииВозврат одного значенияВозврат нескольких значенийИменованные возвращаемые значенияОсновы области видимости функцийИтоги — создание переиспользуемого кода3Базовые операторы
Арифметические операторыОператор деленияОператор остатка от деленияОператор присваиванияКомбинированные операторы присваиванияИнкремент и декрементПовторение — Вычисления6Управление потоком: Условные конструкции
Оператор `if`Ключевое слово `else`Ключевое слово `else if`Затенение переменных в `if`Инициализация переменныхОператор `switch`Switch с выражениямиSwitch без выраженийКлючевое слово `fallthrough`Итоги — Принятие решений