Reversiones explícitas
Parte de la sección Fundamentos del Journey de Solidity de Coddy. Lección 47 de 53.
Una rama if puede llamar a revert(message) para rechazar explícitamente un caso no válido. Esto resulta útil cuando la condición de rechazo es más fácil de leer que su opuesto. Coloca el trabajo normal después de la guarda para que se ejecute únicamente con una entrada aceptable.
Las instrucciones de este fragmento se ejecutan dentro de la función main proporcionada.
uint256 chosen = 4;
if (chosen > 6) { revert("Choice too large"); }
console.log(chosen + 2);Cuatro no supera seis, por lo que se omite la rama de rechazo. La ejecución llega a la llamada a console. Un revert explícito rechaza la llamada igual que un require fallido; no es una forma de imprimir un resultado normal.
revert finaliza la llamada actual con un fallo en lugar de continuar normalmente.
Desafío
FácilRechaza el valor superior a 50 con revert y un mensaje útil. Para la entrada aceptada, imprime 50 menos el valor. Todas las pruebas de salida están dentro del rango.
Las pruebas pasan argumentos a main en este orden: uint256 value. Cada prueba comienza con el estado del contrato restablecido.
Usa console.log para la salida solicitada. Imprime únicamente los valores solicitados, uno por línea, sin etiquetas adicionales a menos que la tarea las especifique.
Pruébalo tú mismo
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 value) external view {
// Escribe tu solución aquí.
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
10Reglas de los contratos
Condiciones requireReversiones explícitasEventosVisibilidad y privacidadActualizaciones verificadas2Variables y tipos
Enteros sin signoEntradas y salidasEnteros con signoValores booleanosCadenas en memoriaTarjeta de perfil5Funciones
Parámetros de funcionesValores de retornoFunciones purasLlamadas auxiliaresCálculos reutilizablesPractica por tu cuenta: Playground de Solidity