Lecture et écriture de l’état
Fait partie de la section Fondamentaux du Journey Solidity de Coddy. Leçon 27 sur 53.
Une fonction view peut lire l’état du contrat, mais ne peut pas le modifier. Une fonction qui écrit dans l’état ne peut pas être marquée view ou pure. Séparez un getter qui lit une valeur d’un setter qui la modifie afin de clarifier le rôle de chaque fonction.
Déclarez ceci au niveau du contrat :
uint256 stored;
function setValue(uint256 n) internal {
stored = n;
}
function readValue() internal view returns (uint256) {
return stored;
}Utilisez-le dans la fonction main fournie :
setValue(18);
console.log(readValue());setValue écrit dans la variable stockée partagée. readValue est view, car elle renvoie cette variable sans la modifier. main écrit également de manière indirecte en appelant setValue, son en-tête ne comporte donc aucun modificateur view ou pure.
Une fonction qui écrit dans l’état du contrat ne peut pas être marquée view.
Défi
FacileDéclarez l’état level, un setter setLevel et un getter de lecture getLevel. main doit définir level sur la valeur nextLevel fournie, puis afficher le résultat du getter.
Les tests transmettent des arguments à main dans cet ordre : uint256 nextLevel. 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 le précise.
Essayez vous-même
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 nextLevel) external {
// É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éutilisables6État du contrat
Variables d’étatLecture et écriture de l’étatGetters publics de l’étatConstantesCompteur partagéEntraînez-vous par vous-même : Playground Solidity