Menu
Coddy logo textTech

Retornando Múltiplos Valores

Parte da seção Fundamentos do Journey de GO da Coddy. Lição 56 de 109.

Funções Go podem retornar múltiplos valores de uma só vez, o que é extremamente útil para retornar tanto resultados quanto informações de erro.

Crie uma função que retorne tanto o quociente quanto o resto:

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)
}

Quando você executa este programa, a saída é:

7 ÷ 3 = 2 with remainder 1

A função retorna dois valores separados por vírgulas e capturamos ambos os valores usando múltiplas variáveis na atribuição.

Se você precisar de apenas alguns dos valores retornados, você pode usar o identificador em branco _ para ignorar aqueles que você não precisa:

q, _ := divide(7, 3)  // ignora o resto
fmt.Println("Quotient:", q)

O uso de _ informa ao Go para descartar aquele valor de retorno. Isso é obrigatório quando você não usa um valor, já que o Go não permite variáveis não utilizadas.

challenge icon

Desafio

Iniciante

Neste desafio, você praticará o retorno de múltiplos valores de uma função em Go.

Temos uma função chamada getPersonInfo que deve retornar o nome, a idade e se uma pessoa é estudante. Sua tarefa é completar a função adicionando a instrução de retorno apropriada.

Experimente você mesmo

package main

import "fmt"

// Esta função deve retornar três valores: name, age, e isStudent
func getPersonInfo() (string, int, bool) {
	// As variáveis já estão definidas para você
	name := "Alex"
	age := 25
	isStudent := true
	
	// TODO: Retornar todos os três valores (name, age, isStudent)
	
}

func main() {
	// Chame a função e armazene os valores retornados
	name, age, isStudent := getPersonInfo()
	
	// Imprima os valores
	fmt.Printf("Name: %s\n", name)
	fmt.Printf("Age: %d\n", age)
	fmt.Printf("Is Student: %t\n", isStudent)
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Go online