Solidity — это язык программирования смарт-контрактов. Чаще всего он используется для написания смарт-контрактов для блокчейна Ethereum, но может использоваться для реализации смарт-контрактов на любом блокчейне, использующем виртуальную машину Ethereum (EVM).
Как и во всех других языках программирования, типы данных в Solidity можно разделить на 2 типа: значения и ссылки.

  • Ценности: значения просто означают, что тип данных хранит значение, например, логическое значение true или же false.
  • использованная литература: типы данных ссылки на тип не хранят значение, вместо этого они хранят ссылку на то, где хранятся фактические данные, например, массив — это тип данных ссылки на тип.

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


логический

contract ValueType {
    bool public boo= true;
}
Войти в полноэкранный режим

Выйти из полноэкранного режима

Здесь у нас есть контракт с именем ValueTypeмы объявим все типы данных значений внутри этого контракта.
В контракте мы объявляем логический тип данных с помощью ключевого слова boolэто логическое значение объявляется как public поэтому его можно назвать вне контракта.
Переменной дается имя boo и его значение установлено в trueзначение логического значения может быть либо true или же false.


Беззнаковое целое

Далее мы рассмотрим беззнаковый целочисленный тип данных.
Целое число без знака означает, что тип данных должен быть больше или равен нулю, мы не можем использовать отрицательные числа с целыми числами без знака, только ноль или положительные числа.

contract ValueType {
    uint public numU= 123;
}
Войти в полноэкранный режим

Выйти из полноэкранного режима

Здесь uint ключевое слово используется для объявления целого числа без знака, переменная объявляется как publicпеременной дается имя numUи его значение устанавливается равным 123.
Ключевое слово uint это псевдоним для 0 к 2^256 - 1
Существуют разные варианты uint с различными диапазонами, начиная с uint8, uint16и т. д., который идет полностью до uint256.
Среди этих вариаций uintсамый распространенный из них, с которым мы часто сталкиваемся, это uint256.
Целые числа без знака поддерживают только числа больше нуля, но что из случаев, когда нам нужно использовать отрицательное число, в этом случае мы используем целые числа.


Целые числа

Далее, давайте взглянем на целые числа.
Целые числа позволяют нам использовать положительные и отрицательные числа в нашем контракте.

contract ValueType {
    int public numI= -123;
}
Войти в полноэкранный режим

Выйти из полноэкранного режима

Целое число объявляется с помощью int ключевое слово, переменная здесь объявлена ​​как publicпеременной дается имя numI и установленное значение -123.
Подобно целым числам без знака, ключевое слово int также является псевдонимом int256.
Существуют также различные вариации intначиная с int8, int16 к int256.


Адрес

Еще один тип данных значения, с которым мы часто сталкиваемся в Solidity, — это type address.

contract ValueType {
    address public addr= 0xFAed2F163D65141FbD48fD5FE1a4C08c2e50a4bF;
}
Войти в полноэкранный режим

Выйти из полноэкранного режима

Адресный тип данных объявляется с помощью ключевого слова addressэта переменная сделана publicа адресу дается имя addr и мы устанавливаем значение на случайный адрес кошелька Ethereum.


байт32

Последний тип данных значения, который мы рассмотрим в этой статье, это byte32мы столкнемся с этим типом данных при работе с доступной в Solidity функцией криптографического кэша, которая называется kachek256.

contract ValueType {
    bytes32 public b32= 0x0000000000000000000000000000000;
}
Войти в полноэкранный режим

Выйти из полноэкранного режима

Мы объявляем bytes32 с помощью ключевого слова bytes32переменная становится общедоступной и ей дается имя b32значение здесь установлено в какие-то случайные 32 байта.


Вывод

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

Спасибо за прочтение. Если вам понравилось читать это так же, как мне понравилось писать, то поставьте лайк и поделитесь этим с друзьями, а также не стесняйтесь связаться со мной на Твиттер 👨‍💻.