Solidity
Урок 1
Код в Solidity помещают внутри контрактов. contract
— это базовый блок для создания приложений на Ethereum. Все переменные и функции принадлежат контракту, он — отправная точка проекта.
pragma solidity ^0.4.19; contract HelloWorld { }
Переменные состояния записываются в хранилище контракта. Это означает, что они сохраняются в блокчейне Ethereum, как в базе данных.
Пример:
contract Example { // Контракт навсегда сохранен в блокчейне uint myUnsignedInteger = 100; }
В этом примере контракта мы создали uint
под названием myUnsignedInteger
и присвоили ему значение 100.
Тип данных uint
— это целые числа без знака, то есть их значение не может быть отрицательным. Еще есть тип данных int
для целых чисел со знаком.
Примечание: в Solidity uint
используют как синоним для uint256
, 256-битного целого числа без знака. Можно задать uint с меньшим количество битов — uint8
, uint16
, uint32
и.т.д. Но обычно используют просто uint
, кроме особенных случаев
Математика в Solidity довольна проста. Операции точно такие же, как в большинстве языков программирования:
- Сложение:
x + y
- Вычитание:
x - y
, - Умножение:
x * y
- Деление:
x / y
- Модуль и остаток от деления:
x % y
(например,13 % 5
будет равно3
, если разделить 13 на 5, в остатке 3)
Solidity поддерживает экспоненциальные операции exponential operator — возведение в степень (например "x в степени y", x^y):
structs - структуры (более сложный тип данных)
В Solidity есть два типа массивов: фиксированный и динамический:
Событие — это способ, которым контракт сообщает внешнему интерфейсу приложения, что в блокчейне произошло некое событие. Интерфейс может «услышать» определенные события и выполнить заданное действие по его наступлении.