Menu
Coddy logo textTech

Переменные состояния

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

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

Объявите её на уровне контракта:

uint256 count;

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

count = 6;
console.log(count);

count объявляется на уровне контракта, а main присваивает ему значение. Этот учебный запускатель начинает каждый тест с новым хранилищем, заполненным нулями, поэтому не ожидай, что один тест продолжит другой. В этом разделе инициализируй состояние с помощью присваиваний внутри main, а не инициализаторов при объявлении или конструкторов.

Переменная состояния объявляется на уровне контракта, вне тел функций.

challenge icon

Задание

Легко

Объявите переменную состояния visits. В main присвойте ей переданное значение start, вызовите внутреннюю вспомогательную функцию addVisit, которая увеличивает visits на единицу, затем выведите visits.

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

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

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

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

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

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

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