Solidity — это язык программирования, специально разработанный для написания смарт-контрактов на блокчейне Ethereum. Одна из важнейших концепций Solidity — глобальные переменные. В этой статье блога мы рассмотрим, что такое глобальные переменные, и предоставим вам несколько методов работы с ними. Мы будем использовать разговорный язык и примеры кода, чтобы новичкам было легче понять.
Понимание глобальных переменных:
В Solidity глобальные переменные — это переменные, к которым можно получить доступ и изменить их из любой функции в контракте. Они полезны для хранения и управления данными, которые необходимо использовать в различных функциях.
Метод 1: использование ключевого слова «хранилище».
Одним из распространенных методов объявления глобальной переменной является использование ключевого слова storage. Вот пример:
pragma solidity ^0.8.0;
contract MyContract {
uint256 public myVariable; // global variable
function setVariable(uint256 _newValue) public {
myVariable = _newValue;
}
function getVariable() public view returns (uint256) {
return myVariable;
}
}
В этом примере myVariableобъявляется вне любой функции, что делает ее глобальной переменной. Ключевое слово publicпозволяет другим контрактам или внешним объектам читать значение myVariable.
Метод 2: использование структуры данных «сопоставления».
Другой способ создания глобальной переменной — использование структуры данных mapping. Вот пример:
pragma solidity ^0.8.0;
contract MyContract {
mapping(address => uint256) public balances; // global variable
function setBalance(uint256 _newValue) public {
balances[msg.sender] = _newValue;
}
function getBalance(address _user) public view returns (uint256) {
return balances[_user];
}
}
В этом примере balances— это глобальная переменная, которая использует mappingдля связи адреса с балансом. Каждый адрес может иметь уникальный баланс, а ключевое слово publicпозволяет другим контрактам или внешним объектам получать доступ к балансу.
Метод 3: использование модификатора const
Если у вас есть глобальная переменная, которая должна оставаться постоянной на протяжении всего выполнения вашего контракта, вы можете использовать модификатор constant. Вот пример:
pragma solidity ^0.8.0;
contract MyContract {
uint256 public constant MY_CONSTANT = 42; // global constant variable
function getConstant() public pure returns (uint256) {
return MY_CONSTANT;
}
}
В этом примере MY_CONSTANTобъявлена как глобальная переменная с использованием модификатора constant. Ключевое слово publicпозволяет другим контрактам или внешним объектам читать значение константы.
Глобальные переменные необходимы в Solidity для хранения и управления общими данными в различных функциях в рамках контракта. Мы рассмотрели три метода создания глобальных переменных: использование ключевого слова storage, структуры данных mappingи модификатора constant. Используя эти методы, вы можете эффективно работать с глобальными переменными в Solidity и создавать более сложные и интерактивные смарт-контракты на блокчейне Ethereum.