Menu
Coddy logo textTech

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.

challenge icon

Défi

Facile

Dé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.
    }
}
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

Entraînez-vous par vous-même : Playground Solidity