Valeurs de retour
Fait partie de la section Fondamentaux du Journey Solidity de Coddy. Leçon 22 sur 53.
Une fonction peut calculer un résultat sans l’afficher. Déclarez le type de résultat avec returns, puis utilisez return dans le corps. L’appelant peut stocker la valeur renvoyée et l’utiliser dans une expression plus grande. Renvoyer une valeur et l’afficher sont deux actions distinctes.
Définissez cette fonction utilitaire à l’intérieur du contrat :
function doubled(uint256 n) internal pure returns (uint256) {
return n * 2;
}Utilisez-la dans la fonction main fournie :
uint256 value = doubled(9);
console.log(value + 1);L’auxiliaire renvoie dix-huit. L’appelant ajoute un et affiche dix-neuf. Une instruction return met fin à l’appel de fonction en cours, de sorte que les instructions ordinaires situées après un return inconditionnel ne peuvent pas contribuer à cet appel.
Une valeur renvoyée peut être stockée ou utilisée par l’appelant sans être affichée par l’auxiliaire.
Défi
FacileÉcrivez un assistant interne square de type pure qui renvoie n multiplié par n. Dans main, stockez square(side) dans une variable et affichez-la.
Les tests transmettent les arguments à main dans cet ordre : uint256 side. Chaque test commence avec un état de contrat vierge.
Utilisez console.log pour la sortie demandée. Affichez uniquement les valeurs demandées, une par ligne, sans libellés supplémentaires, sauf si la tâche les spécifie.
Essayez vous-même
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 side) external view {
// Écrivez votre solution ici.
}
}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
2Variables et types
Entiers non signésEntrées et sortiesEntiers signésValeurs booléennesChaînes en mémoireCarte de profil5Fonctions
Paramètres des fonctionsValeurs de retourFonctions puresAppels de fonctions auxiliairesCalculs réutilisablesEntraînez-vous par vous-même : Playground Solidity