Menu
Coddy logo textTech

Вызовы вспомогательных функций

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

Один вспомогательный элемент может вызывать другой вспомогательный элемент, чтобы разбить вычисление на понятные шаги. Внешний вспомогательный элемент использует возвращённое значение, а затем возвращает свой собственный результат. Внутреннюю функцию можно вызвать непосредственно по имени из другой функции контракта.

Определите этот вспомогательный элемент внутри контракта:

function twice(uint256 n) internal pure returns (uint256) {
    return n * 2;
}
function adjusted(uint256 n) internal pure returns (uint256) {
    return twice(n) + 4;
}

Используйте её внутри предоставленной функции main:

console.log(adjusted(6));

adjusted вызывает его дважды, что возвращает двенадцать, а затем добавляет четыре. main видит только итоговое шестнадцать. Такое разделение оставляет правило повторного удвоения в одном месте, тогда как другой вспомогательный элемент описывает дополнительную корректировку.

Вспомогательная функция может напрямую вызывать другую внутреннюю вспомогательную функцию по имени.

challenge icon

Задание

Легко

Напишите чистые внутренние вспомогательные функции doubleValue, возвращающую n, умноженное на два, и withBonus, возвращающую doubleValue(n) плюс пять. Выведите результат с помощью withBonus(points).

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

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

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

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

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

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

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