Переменные состояния
Часть раздела Основы путешествия по Solidity на Coddy. Урок 26 из 53.
Переменная, объявленная внутри контракта, но вне всех функций, является переменной состояния. Функции в этом контракте используют её совместно. Локальная переменная, объявленная внутри функции, принадлежит этому вызову. В развёрнутом блокчейне успешные изменения состояния могут сохраняться между транзакциями.
Объявите её на уровне контракта:
uint256 count;Используйте её внутри предоставленной функции main:
count = 6;
console.log(count);count объявляется на уровне контракта, а main присваивает ему значение. Этот учебный запускатель начинает каждый тест с новым хранилищем, заполненным нулями, поэтому не ожидай, что один тест продолжит другой. В этом разделе инициализируй состояние с помощью присваиваний внутри main, а не инициализаторов при объявлении или конструкторов.
Переменная состояния объявляется на уровне контракта, вне тел функций.
Задание
ЛегкоОбъявите переменную состояния 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 {
// Напишите ваше решение здесь.
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
2Переменные и типы
Беззнаковые целые числаВвод и выводЗнаковые целые числаЛогические значенияСтроки в памятиКарточка профиля5Функции
Параметры функцийВозврат значенийЧистые функцииВызовы вспомогательных функцийПовторно используемые вычисления6Состояние контракта
Переменные состоянияЧтение и запись состоянияОткрытые геттеры состоянияКонстантыОбщий счётчикПотренируйтесь самостоятельно: Песочница Solidity