Menu
Coddy logo textTech

Lettura e scrittura dello stato

Fa parte della sezione Fondamenti del percorso Solidity di Coddy. Lezione 27 di 53.

Una funzione view può leggere lo stato del contratto, ma non può modificarlo. Una funzione che scrive nello stato non può essere contrassegnata come view o pure. Separa un getter che legge un valore da un setter che lo modifica, così da rendere chiaro lo scopo di ciascuna funzione.

Dichiara questo nell'ambito del contratto:

uint256 stored;
function setValue(uint256 n) internal {
    stored = n;
}
function readValue() internal view returns (uint256) {
    return stored;
}

Usalo all'interno della funzione main fornita:

setValue(18);
console.log(readValue());

setValue scrive la variabile condivisa memorizzata. readValue è view perché restituisce quella variabile senza modificarla. Anche main scrive indirettamente chiamando setValue, quindi la sua intestazione non ha il modificatore view o pure.

Una funzione che scrive nello stato del contratto non può essere contrassegnata come view.

challenge icon

Sfida

Facile

Dichiara lo stato level, un setter setLevel e un getter view getLevel. main deve impostare level sul valore nextLevel fornito, quindi stampare il risultato del getter.

I test passano gli argomenti a main in questo ordine: uint256 nextLevel. Ogni test inizia con uno stato del contratto nuovo.

Usa console.log per l'output richiesto. Stampa solo i valori richiesti, uno per riga, senza etichette aggiuntive, a meno che il compito non le specifichi.

Provalo tu

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 nextLevel) external  {
        // Scrivi qui la tua soluzione.
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Solidity