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

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

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

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

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

challenge icon

Задание

Новичок

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

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

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

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