Solidity - Типы

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

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

Типы значений

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

Тип Ключевое слово Значения
Булево bool правда / ложь
Целое число int / uint Целые числа со знаком и без знака разного размера.
Целое число int8 в int256 Знаковое int от 8 до 256 бит. int256 такой же, как int.
Целое число uint8 в uint256 Беззнаковое целое число от 8 до 256 бит. uint256 такой же, как uint.
Числа с фиксированной точкой фиксированный / нефиксированный Знаковые и беззнаковые числа с фиксированной точкой разного размера.
Числа с фиксированной точкой фиксированный / нефиксированный Знаковые и беззнаковые числа с фиксированной точкой разного размера.
Числа с фиксированной точкой fixedMxN Число с фиксированной точкой со знаком, где M представляет количество битов, взятых для типа, а N представляет десятичные точки. M должно делиться на 8 и быть от 8 до 256. N может быть от 0 до 80. fixed то же, что и fixed128x18.
Числа с фиксированной точкой ufixedMxN Число с фиксированной точкой без знака, где M представляет количество битов, взятых для типа, а N представляет десятичные точки. M должно делиться на 8 и быть от 8 до 256. N может быть от 0 до 80. ufixed то же, что и ufixed128x18.

адрес

address содержит 20-байтовое значение, представляющее размер адреса Ethereum. Адрес может использоваться для получения баланса с помощью метода .balance и может использоваться для перевода баланса на другой адрес с помощью метода .transfer.

address x = 0x212;
address myAddress = this;
if (x.balance < 10 && myAddress.balance >= 10) x.transfer(10);