Menu
CoddyTech

Retornando Múltiplos Valores

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

As funções em Go podem retornar vários valores de uma só vez, o que é extremamente útil para retornar tanto os 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, ele exibe:

7 ÷ 3 = 2 with remainder 1

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

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

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

Usar _ informa ao Go para descartar esse valor de retorno. Isso é necessário quando você não usa um valor, pois Go não permite variáveis não utilizadas.

challenge icon

Desafio

Iniciante

Neste desafio, você vai praticar como retornar vários valores de uma função em Go.

Temos uma função chamada getPersonInfo que deve retornar o nome e a idade de uma pessoa e informar se ela é estudante. Sua tarefa é completar a função adicionando a instrução return 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: Retorne 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