Menu
Coddy logo textTech

Retourner plusieurs valeurs

Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 56 sur 109.

Les fonctions Go peuvent retourner plusieurs valeurs à la fois, ce qui est extrêmement utile pour retourner à la fois des résultats et des informations d'erreur.

Créez une fonction qui renvoie à la fois un quotient et un reste :

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

Lorsque vous exécutez ce programme, il affiche :

7 ÷ 3 = 2 with remainder 1

La fonction retourne deux valeurs séparées par des virgules, et nous capturons les deux valeurs en utilisant plusieurs variables lors de l'affectation.

Si vous n'avez besoin que de l'une des valeurs retournées, vous pouvez utiliser l'identificateur blanc _ pour ignorer l'autre. Par exemple, pour obtenir uniquement le quotient :

q, _ := divide(7, 3)
fmt.Println("Quotient:", q)

L'_ ignore le reste afin que le compilateur ne signale pas d'erreur pour une variable inutilisée.

challenge icon

Défi

Débutant

Dans ce défi, vous allez vous entraîner à retourner plusieurs valeurs depuis une fonction en Go.

Nous avons une fonction appelée getPersonInfo qui doit retourner le nom, l'âge et si la personne est étudiante. Votre tâche consiste à compléter la fonction en ajoutant l'instruction de retour appropriée.

Aide-mémoire

Les fonctions Go peuvent retourner plusieurs valeurs à la fois. Spécifiez plusieurs types de retour entre parenthèses et retournez plusieurs valeurs séparées par des virgules :

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

Capturez plusieurs valeurs de retour en utilisant plusieurs variables lors de l'affectation :

q, r := divide(7, 3)

Essayez vous-même

package main

import "fmt"

// Cette fonction doit retourner trois valeurs : name, age, et isStudent
func getPersonInfo() (string, int, bool) {
	// Les variables sont déjà définies pour vous
	name := "Alex"
	age := 25
	isStudent := true
	
	// TODO: Retourner les trois valeurs (name, age, isStudent)
	
}

func main() {
	// Appeler la fonction et stocker les valeurs retournées
	name, age, isStudent := getPersonInfo()
	
	// Afficher les valeurs
	fmt.Printf("Name: %s\n", name)
	fmt.Printf("Age: %d\n", age)
	fmt.Printf("Is Student: %t\n", isStudent)
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux