Menu
Coddy logo textTech

Условия require

Часть раздела Основы путешествия по Solidity на Coddy. Урок 46 из 53.

Используйте require(condition, message), чтобы отклонить вызов, если ожидаемое условие ложно. Выполнение продолжается, если условие выполнено. Невыполненное требование отменяет вызов и изменения его состояния. Проверяйте входные данные перед их использованием в операции, зависящей от этого условия.

Инструкции в этом фрагменте выполняются внутри предоставленной функции main.

uint256 quantity = 7;
require(quantity > 0, "Positive quantity required");
console.log(quantity * 3);

Значение семь проходит проверку на положительное количество, поэтому вычисление выводит двадцать один. Если бы quantity равнялось нулю, вызов вместо этого завершился бы откатом. Сообщение объясняет невыполненное требование; во время успешного вызова оно не выводится.

require продолжает выполнение, когда его условие истинно, и выполняет откат, когда оно ложно.

challenge icon

Задание

Легко

Проверьте, что делитель больше нуля, используя понятное сообщение об ошибке. Затем выведите результат деления total на divisor. В тестах видимого вывода используются положительные делители; ваш код всё равно должен содержать эту проверку.

Тесты передают аргументы в main в таком порядке: uint256 total, uint256 divisor. Каждый тест начинается с нового состояния контракта.

Используйте console.log для требуемого вывода. Выводите только запрошенные значения, по одному в строке, без дополнительных меток, если только задание явно их не требует.

Попробуйте сами

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 total, uint256 divisor) external view {
        // Напишите ваше решение здесь.
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Песочница Solidity