Menu
Coddy logo textTech

Revert espliciti

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

Un ramo if può chiamare revert(message) per rifiutare esplicitamente un caso non valido. È utile quando la condizione di rifiuto è più facile da leggere del suo opposto. Inserisci le normali operazioni dopo il controllo, così verranno eseguite solo con input validi.

Le istruzioni in questo estratto vengono eseguite all'interno della funzione main fornita.

uint256 chosen = 4;
if (chosen > 6) { revert("Choice too large"); }
console.log(chosen + 2);

Quattro non supera sei, quindi il ramo di rifiuto viene saltato. L'esecuzione raggiunge la chiamata alla console. Un revert esplicito rifiuta la chiamata proprio come un require non riuscito; non è un modo per stampare un risultato normale.

revert termina la chiamata corrente con un errore invece di proseguire normalmente.

challenge icon

Sfida

Facile

Rifiuta i valori superiori a 50 con revert e un messaggio utile. Per gli input accettati, stampa 50 meno il valore. Tutti i test dell'output sono nell'intervallo.

I test passano gli argomenti a main in questo ordine: uint256 value. 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 l'attività non le specifichi.

Provalo tu

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 value) external view {
        // 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