Переменные в Solidity подразделяются на переменные State и Local переменные. Хорошее понимание того, как различные переменные разных типов работают в Solidity, имеет решающее значение для написания и поддержки каждого смарт-контракта.

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

  • Область действия переменных состояния заключена в контракте, что означает, что они объявляются на уровне контракта и могут быть доступны из любого места внутри контракта.
  • Поскольку переменные состояния «записываются» в блокчейн и могут быть изменены, они стоят газа.
  • Переменные состояния постоянно хранятся в хранилище (известном как хранилище контрактов).
  • Можно изменить только через сеттеры (функции сеттера)

Локальные переменные

  • В отличие от переменных состояния, область действия локальных переменных находится на функциональном уровне.
  • существует только до тех пор, пока функция живет

О чем следует помнить

  • Переменные состояния не могут быть объявлены с ключевым словом «memory», так как любые переменные, объявленные с «memory», выделяются во время выполнения, например массивы или структуры.
  • Неизменяемые переменные состояния могут быть изменены ОДИН РАЗ в конструкторе или напрямую инициализированы в строке при объявлении.