СОЛИДНОСТЬ-101 (ЧАСТЬ 2)

Об основах солидности вы можете прочитать в моей прошлой статье здесь 👇

Solidity-101 (часть 1)

Начнем

💜 ПЕРЕМЕННЫЕ

  • У нас есть различные типы значений для хранения в программе, например, это может быть целое число, строка, символы, булевы и т.д.
  • Существуют переменные для целого числа или беззнакового целого числа, мы можем добавить силу 2 после типа данных переменной, и это ограничит ее определенным значением.
  • Переменными в solidity являются :

Целые числа

  • Числа могут быть как отрицательными, так и положительными, но не десятичными.
int -> This is to tell solidity that we will store integer in this variable.
int8 -> This will store values from -2^8-1 to  2^8-1 i.e. -255 to 255.
int16 -> This will store values from -2^16-1 to  2^16-1 i.e. -65536 to 65536.
.
.
.
int256 -> This is the maximum integer value solidity store i.e. -2^256-1 to 2^256-1.
Вход в полноэкранный режим Выйти из полноэкранного режима

👉 Помните, что записать просто int или int256 — это одно и то же. По умолчанию int воспринимается как int256.

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

  • Для чисел, которые будут только положительными, но не отрицательными или десятичными.
uint -> This is to tell solidity that we will store unsigned integer in this variable.
uint8 -> This will store values from 0 to  2^8-1 i.e. 0 to 255.
uint16 -> This will store values from 0 to  2^16-1 i.e. 0 to 65536.
.
.
.
uint256 -> This is the maximum integer value solidity store i.e. 0 to 2^256-1.
Вход в полноэкранный режим Выйти из полноэкранного режима

👉 Помните, что записать просто uint или uint256 — это одно и то же. По умолчанию int воспринимается как uint256.

👉 Это ограничено только целочисленными и беззнаковыми Integer.

💜 ОПРЕДЕЛЕНИЕ ПЕРЕМЕННОЙ

  • Мы определяем переменную в solidity следующим образом.
<DATA_TYPE> <ACCESS IDENTIFIER> <VARIABLE NAME>

int8 private fav_num = -8;
uint16 public fav_num = 8;
bool internal is_fav_num = true;
string external word = "Hello";
address private contractAddress = 0x70997970C.......;

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

💜 СПЕЦИАЛЬНЫЙ ИДЕНТИФИКАТОР ДОСТУПА ДЛЯ ФУНКЦИЙ

  • Эти идентификаторы доступа нужны только для того, чтобы сообщить EVM, как функция будет взаимодействовать с хранилищем.
PURE -> This means that it will not even access the storage.

VIEW-> This means that it will only access the storage but wont change anything.

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

💜 ПРИМЕР

address private i_owner;
uint256 public minimumUsd;

function getOwner() public view returns (address) {
        return i_owner;
}

function getAddressToAmountFunded(address funder) public view returns (uint256) {
        return s_addressToAmountFunded[funder];
}

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

💜 Итог

  • Это делается потому, что мы хотим устранить нежелательное использование памяти.
  • Поэтому, если мы знаем, что значения будут небольшими, мы можем использовать uint8, uint16… и т.д.
  • Это делается для того, чтобы держать под контролем цены на газ.
  • В зависимости от различных задач, EVM требует оплаты количества бензина. Поэтому, чтобы держать его под контролем, мы используем эти данные.

👉 Помните об использовании PURE или VIEW -> SPECIAL ACCESS IDENTIFIER, потому что они обозначают, что они говорят EVM, что у них очень ограниченная функциональность, и плата за газ будет взиматься в соответствии с этим.

Вот и все.

В следующей статье мы рассмотрим различные хранилища, структуры данных, которые мы в основном используем при написании SMART CONTRACT.

Здравствуйте, я Таниск Анпурна.

I post about

🚀web3, Blockchain, Ethereum

🐦Smart Contract, Solidity

🎉JavaScript, ReactJS, NodeJS

Follow and like for more such posts. !!✌️!!

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