Смарт-контракты. Что такое смарт-контракт и как его создать в Solidity. С подробным разбором кода. Артем Демиденко
Функция может быть вызвана только из контракта, где она определена, и из его наследующих контрактов.
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