Valeurs de retour nommées
Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 57 sur 109.
En Go, vous pouvez nommer vos valeurs de retour dans les déclarations de fonction. Cela rend votre code plus lisible et vous permet d'effectuer un retour en utilisant simplement une instruction return nue.
Créez une fonction avec des valeurs de retour nommées :
func divide(a, b int) (quotient int, remainder int) {
quotient = a / b
remainder = a % b
return // retour "nu"
}
func main() {
q, r := divide(7, 3)
fmt.Println("7 ÷ 3 =", q, "with remainder", r)
}Le résultat est le même qu'auparavant :
7 ÷ 3 = 2 with remainder 1Les valeurs de retour nommées sont initialisées à leurs valeurs par défaut (zero values) et peuvent être assignées directement dans le corps de la fonction.
Défi
DébutantDans ce défi, vous allez vous entraîner à utiliser les valeurs de retour nommées dans les fonctions Go.
Complétez la fonction getPersonInfo qui renvoie le nom, l'âge d'une personne et si elle est étudiante. La fonction possède déjà des paramètres de retour nommés, mais vous devez leur assigner des valeurs.
La fonction doit renvoyer les valeurs prédéfinies pour une personne nommée 'Alex' qui a 25 ans et qui est étudiante.
Aide-mémoire
En Go, vous pouvez nommer vos valeurs de retour dans les déclarations de fonction pour une meilleure lisibilité et utiliser une instruction return simple :
func divide(a, b int) (quotient int, remainder int) {
quotient = a / b
remainder = a % b
return // retour "nu"
}Les valeurs de retour nommées sont initialisées à leurs valeurs par défaut et peuvent être assignées directement dans le corps de la fonction.
Essayez vous-même
package main
import "fmt"
// Cette fonction utilise des valeurs de retour nommées
func getPersonInfo() (name string, age int, isStudent bool) {
// TODO: Assigner des valeurs aux variables de retour nommées
// name doit être "Alex"
// age doit être 25
// isStudent doit être true
// L'instruction "return" sans arguments renverra les valeurs de retour nommées
return
}
func main() {
name, age, isStudent := getPersonInfo()
fmt.Printf("Name: %s\nAge: %d\nStudent: %t\n", name, age, isStudent)
}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
4Opérateurs de comparaison et logiques
Opérateurs de comparaison - Partie 1Opérateurs de comparaison - Partie 2Opérateur logique ANDOpérateur logique OROpérateur logique NOTBases de la priorité des opérateursRécapitulatif - Effectuer des comparaisons7Structures de contrôle : Les boucles
Explication de la boucle `for`Boucle For - Les basesBoucle For - Condition uniquementLe mot-clé `break`Le mot-clé `continue`Boucles imbriquéesRécapitulatif - Répéter des actions2Variables et types de données de base
Qu'est-ce qu'une variableInférence de type avec `:=` Entiers (int)Nombres à virgule flottanteBooléensChaînes de caractères (Strings)Valeurs zéroConstantesConventions de nommageRécapitulatif - Variables et types5Entrées/Sorties de base
Sortie formatéeVerbes de formatageAffichage des typesSaisie utilisateur de baseRécapitulatif - Entrées et Sorties8Fonctions
Comprendre les fonctionsDéclarer une fonctionAppeler des fonctionsParamètres de fonctionRetourner une valeur uniqueRetourner plusieurs valeursValeurs de retour nomméesBases de la portée des fonctionsRécapitulatif - Créer du code réutilisable11Types composites : Slices
Introduction aux SlicesDéclaration de littéraux de SlicesCréation de Slices avec `make`Longueur vs Capacité des SlicesAccès aux éléments d'un SliceAjout d'élémentsDécoupage de Slices/Tableaux existantsItération sur les SlicesCopie de SlicesRécapitulatif - Listes dynamiques3Opérateurs de base
Opérateurs arithmétiquesOpérateur de divisionL'opérateur moduloOpérateur d'affectationOpérateurs d'affectation augmentéeIncrémentation et décrémentationRécapitulatif - Calculs6Structure de contrôle : Les conditionnelles
L'instruction `if`Le mot-clé `else`Le mot-clé `else if`Masquage de variable dans `if`Initialisation des variablesL'instruction `switch``switch` avec expressions`switch` sans expressionLe mot-clé `fallthrough`Récapitulatif - Prendre des décisions9Pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de variables pointeursL'opérateur d'adresseDéréférencement de pointeursUtiliser des pointeurs dans les fonctionsPointeurs NilRécapitulatif - Comprendre les pointeurs12Types composites : Maps
Introduction aux MapsDéclaration de littéraux de MapCréation de Maps avec `make`Ajout et mise à jour de paires clé-valeurAccès aux valeurs d'une MapVérification de l'existence d'une cléSuppression d'entrées de MapTaille d'une MapItération sur les MapsRécapitulatif - Stockage clé-valeur