Руководство для начинающих по глобальным переменным в Solidity: упрощение с примерами кода

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.