Типы ценностей в Solidity

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

  • Значения: значения просто означают, что тип данных хранит значение, например, boolean хранит либо true, либо false.
  • Ссылки: типы данных типа reference не хранят значения, вместо этого они хранят ссылку на место хранения фактических данных, например, Array — это тип данных типа reference.

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

Boolean

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

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

Беззнаковое целое число

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

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

Здесь ключевое слово uint используется для объявления беззнакового целого числа, переменная объявляется как public, переменной присваивается имя numU, а ее значение устанавливается в 123.
Ключевое слово uint является псевдонимом для 02^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, это тип 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 вы можете найти в документации.

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

Оцените статью
devanswers.ru
Добавить комментарий