Явные откаты
Часть раздела Основы путешествия по Solidity на Coddy. Урок 47 из 53.
Ветка if может вызвать revert(message), чтобы явно отклонить недопустимый случай. Это полезно, когда условие отклонения легче прочитать, чем его противоположность. Разместите обычную работу после проверки, чтобы она выполнялась только для допустимого ввода.
Инструкции в этом фрагменте выполняются внутри предоставленной функции main.
uint256 chosen = 4;
if (chosen > 6) { revert("Choice too large"); }
console.log(chosen + 2);Четыре не превышает шесть, поэтому ветвь отклонения пропускается. Выполнение доходит до вызова console. Явный revert отклоняет вызов так же, как и неудачный require; это не способ вывести обычный результат.
revert завершает текущий вызов с ошибкой, вместо того чтобы продолжить выполнение обычным образом.
Задание
ЛегкоОтклоняйте значение выше 50 с помощью revert и информативного сообщения. Для принятого ввода выведите 50 минус значение. Все тесты вывода находятся в допустимом диапазоне.
Тесты передают аргументы в main в следующем порядке: uint256 value. Каждый тест начинается с нового состояния контракта.
Используйте console.log для требуемого вывода. Выводите только требуемые значения, по одному в строке, без дополнительных меток, если только задание явно их не требует.
Попробуйте сами
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 value) external view {
// Напишите ваше решение здесь.
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
2Переменные и типы
Беззнаковые целые числаВвод и выводЗнаковые целые числаЛогические значенияСтроки в памятиКарточка профиля5Функции
Параметры функцийВозврат значенийЧистые функцииВызовы вспомогательных функцийПовторно используемые вычисленияПотренируйтесь самостоятельно: Песочница Solidity