Valeurs de retour
Fait partie de la section Fondamentaux du Journey Ruby de Coddy — leçon 50 sur 88.
Jusqu'à présent, nos méthodes ont effectué des actions comme l'affichage de la sortie. Mais les méthodes deviennent vraiment puissantes lorsqu'elles peuvent renvoyer des données au code qui les a appelées. C'est à cela que servent les valeurs de retour.
En Ruby, une méthode retourne automatiquement la valeur de sa dernière expression :
def add(a, b)
a + b
end
result = add(5, 3)
puts result # Affiche : 8Remarquez qu'il n'y a pas de puts à l'intérieur de la méthode. Au lieu de cela, la méthode calcule a + b et retourne cette valeur. Nous pouvons ensuite l'enregistrer dans une variable ou l'utiliser directement.
Vous pouvez également utiliser le mot-clé return explicitement :
def multiply(a, b)
return a * b
end
puts multiply(4, 5) # Affiche : 20Le mot-clé return quitte immédiatement la méthode et renvoie la valeur spécifiée. C'est utile lorsque vous voulez sortir prématurément en fonction d'une condition. Les deux approches fonctionnent, mais les programmeurs Ruby s'appuient souvent sur les retours implicites pour un code plus propre.
Les valeurs de retour vous permettent d'enchaîner les opérations et de construire une logique complexe à partir de méthodes simples :
def double(n)
n * 2
end
puts double(double(3)) # Affiche : 12Défi
FacileDéfinissez une méthode appelée square qui prend un paramètre n et retourne le carré de ce nombre (le nombre multiplié par lui-même).
Lisez deux entiers à partir de l'entrée. Utilisez la méthode square pour calculer le carré de chaque nombre, puis affichez la somme des deux carrés.
Par exemple, si les entrées sont 3 et 4 :
- Le carré de 3 est 9
- Le carré de 4 est 16
- La somme est 25
La sortie devrait être :
25Si les entrées sont 5 et 2, la sortie devrait être :
29Aide-mémoire
Les méthodes peuvent renvoyer des valeurs au code qui les a appelées. En Ruby, une méthode renvoie automatiquement la valeur de sa dernière expression :
def add(a, b)
a + b
end
result = add(5, 3)
puts result # Affiche : 8Vous pouvez également utiliser le mot-clé return de manière explicite pour quitter la méthode et renvoyer une valeur :
def multiply(a, b)
return a * b
end
puts multiply(4, 5) # Affiche : 20Les valeurs de retour vous permettent de chaîner les appels de méthodes :
def double(n)
n * 2
end
puts double(double(3)) # Affiche : 12Essayez vous-même
# Lire deux entiers à partir de l'entrée
num1 = gets.chomp.to_i
num2 = gets.chomp.to_i
# TODO : Définir la méthode square ci-dessous
# TODO : Calculer la somme des carrés en utilisant la méthode square et afficher le résultatCette 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, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateurs logiques, partie 47Calculateur de partage de facture
Message de bienvenueSaisie de l'utilisateur10FizzBuzz avec une variante
Présentation du jeuLa méthode FizzBuzz2Variables et types de données
Nombres et variablesType de données StringType de données BooleanType de données SymbolVérification des types de donnéesConventions de nommageRécapitulatif - Création de variables5Prise de décision
Instruction IfIf - ElseRécapitulatif - Calculatrice simpleIf - Else imbriquésInstruction Unless8Boucles
Boucle For avec des intervallesBoucle WhileBreakNextRécapitulatif - FactorielleBoucle TimesBoucle UntilBoucles imbriquéesRécapitulatif - Entrée dynamique3Les opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesRécapitulatif - Calculs simplesOpérateurs de comparaison6Entrées/Sorties de base
Sortie avec putsSortie avec print et pSortie avec des variablesEntrée avec getsLa méthode chompConversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Méthodes
Définir une méthodeParamètres de méthodeValeurs de retourRécapitulatif - Méthode SigmaRécapitulatif - Méthode de validationValeurs de paramètres par défaut12Itérer sur les collections
L'itérateur EachEach avec indexItérer sur les chaînes de caractèresMap et Collect