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);