Скачать книгу

Функция может быть вызвана только из контракта, где она определена, и из его наследующих контрактов.

      3.      private: Функция может быть вызвана только из контракта, где она определена.

      Пример объединения всего вместе:

      pragma solidity ^0.8.0;

      contract MyContract {

      ....uint256 public myNumber; // Переменная

      ....constructor(uint256 _initialNumber) {

      ........myNumber = _initialNumber;

      ....}

      ....function setNumber(uint256 _newNumber) public {

      ........myNumber = _newNumber;

      ....}

      ....function getNumber() public view returns (uint256) {

      ........return myNumber;

      ....}

      }

      В этом примере мы создали контракт MyContract, который содержит переменную myNumber, функцию setNumber для обновления значения переменной и функцию getNumber для получения значения.

      В этой главе мы рассмотрели базовые концепции типов данных, переменных и функций в Solidity. Понимание этих элементов позволит вам начать создавать более сложные смарт-контракты и эффективно взаимодействовать с данными на блокчейне Ethereum.

      3.4: Управление данными и хранилищем

      В этой части мы погрузимся в детали управления данными и хранилищем в смарт-контрактах, изучив, как хранить и обрабатывать информацию в блокчейне при помощи языка программирования Solidity.

      3.4.1 Типы данных и переменные

      Для эффективной работы с смарт-контрактами на Solidity важно хорошо понимать различные типы данных и какие возможности они предоставляют. В этом разделе мы подробно рассмотрим основные типы данных в Solidity и примеры их использования.

      Целочисленные типы данных (uint и int)

      Целочисленные типы данных используются для представления чисел без десятичной части (целых чисел). В Solidity есть беззнаковые и знаковые целочисленные типы данных:

      •      uint: беззнаковое целое число. Например, uint256 представляет целое число без знака, состоящее из 256 битов (32 байта).

      •      int: знаковое целое число. Например, int8 представляет знаковое целое число, использующее 8 битов (1 байт).

      Пример объявления и использования целочисленных переменных:

      uint256 public totalSupply;

      int8 public temperature;

      totalSupply = 100000; // Присвоение значения переменной

      temperature = -10;.... // Присвоение другого значения переменной

      Логический тип данных (bool)

      Логический тип данных bool может принимать только два значения: true (истина) или false (ложь). Логические переменные часто используются для контроля потока выполнения программы при помощи условий.

      Пример использования логической переменной:

      bool public isActivated;

      isActivated = true;.... // Присвоение значения переменной

      if (isActivated) {

      ....// Выполнить код, если isActivated равно true

      }

      Адрессный тип данных (address)

      Тип данных address предназначен для хранения адресов кошельков Ethereum. С его помощью можно отслеживать владельцев аккаунтов и взаимодействовать с другими смарт-контрактами и адресами.

      Пример использования адрессного типа данных:

      address public owner;

      owner = msg.sender;....// Присвоение адреса отправителя транзакции переменной

      address

Скачать книгу