Переменные в Solidity подразделяются на переменные State и Local переменные. Хорошее понимание того, как различные переменные разных типов работают в Solidity, имеет решающее значение для написания и поддержки каждого смарт-контракта.
Переменные состояния
- Область действия переменных состояния заключена в контракте, что означает, что они объявляются на уровне контракта и могут быть доступны из любого места внутри контракта.
- Поскольку переменные состояния «записываются» в блокчейн и могут быть изменены, они стоят газа.
- Переменные состояния постоянно хранятся в хранилище (известном как хранилище контрактов).
- Можно изменить только через сеттеры (функции сеттера)
Локальные переменные
- В отличие от переменных состояния, область действия локальных переменных находится на функциональном уровне.
- существует только до тех пор, пока функция живет
О чем следует помнить
- Переменные состояния не могут быть объявлены с ключевым словом «memory», так как любые переменные, объявленные с «memory», выделяются во время выполнения, например массивы или структуры.
- Неизменяемые переменные состояния могут быть изменены ОДИН РАЗ в конструкторе или напрямую инициализированы в строке при объявлении.