Menu
Coddy logo textTech

Возврат нескольких значений

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

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

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

func divide(a, b int) (int, int) {
    quotient := a / b
    remainder := a % b
    return quotient, remainder
}

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

Когда вы запускаете эту программу, она выводит:

7 ÷ 3 = 2 with remainder 1

function возвращает два values, разделённых запятыми, и мы сохраняем оба значения, используя несколько переменных при присваивании.

Если вам нужны только некоторые возвращаемые значения, вы можете использовать пустой идентификатор _, чтобы пропустить ненужные значения:

q, _ := divide(7, 3)  // игнорируем остаток
fmt.Println("Quotient:", q)

Использование _ указывает Go пропустить это возвращаемое значение. Это необходимо, если вы не используете значение, поскольку Go не допускает неиспользуемые переменные.

challenge icon

Задание

Новичок

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

У нас есть функция с именем getPersonInfo, которая должна возвращать имя и возраст человека, а также информацию о том, является ли он студентом. Твоя задача — завершить функцию, добавив соответствующую инструкцию Return.

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

package main

import "fmt"

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

func main() {
	// Вызовите функцию и сохраните возвращённые значения
	name, age, isStudent := getPersonInfo()
	
	// Выведите значения
	fmt.Printf("Name: %s\n", name)
	fmt.Printf("Age: %d\n", age)
	fmt.Printf("Is Student: %t\n", isStudent)
}
quiz iconПроверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор Go