солидность 101

  • Типы данных

  • Переменные

  • Константы

  • Неизменяемые

Типы данных

В основном в языке solidity есть 4 типа типов данных.

  • boolean
  • uint
  • int
  • адрес

булево:

Как мы знаем, мы можем указать, что переменная является истинной или ложной.

uint:

Обозначает беззнаковые целые числа. Мы можем указывать только неотрицательные целые числа.

uint может иметь диапазон размеров, например uint8, uint16 … uint256.
uint8 = от 0 до 2**8-1. то же самое относится и к другим.

int:

Как мы знаем, мы можем указать целое число, а для типа int допускаются отрицательные числа. Как и uint, здесь мы также можем указать диапазон различных размеров.

адрес:

Адрес содержит 20-байтовое значение, которое является размером адреса ethereum. Дополнительно мы можем указать адрес к оплате, который может перевести или отправить средства на адрес.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

contract ExampleDataType {

 bool public boo = true;
 uint public age = 27;
 int public num = -3;
 address public addr = 0x8CA434018A6d.....;

}

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

Переменные

Переменные — это контейнеры, в которых мы храним некоторые данные. У нас есть три типа переменных.

  • состояние
  • локальная
  • глобальные

состояние:

Переменные состояния объявляются внутри функции и не хранятся в блокчейне.

local:

Локальные переменные объявляются вне функции и хранятся в блокчейне.

global:

Глобальные переменные предоставляют информацию о блокчейне.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

contract ExampleVariable {

  string public name = "jon doe"; // state variable.

  function changeName() public {
     uint pin = 500082;  // local variable
     address sender = msg.sender; // global variable
  }

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

константы

Константы — это переменные, которые не могут быть изменены. Их значение жестко закодировано, и использование констант позволяет экономить газ.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

contract ExampleConstants {

   address public constant ADDR = 0xee3445e...;
   uint256 public constant MAX_NFT = 1000

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

Неизменяемые

Неизменяемые переменные похожи на константы. Значение неизменяемых переменных может быть задано в конструкторе, но не может быть изменено после этого.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

contract ExampleConstants {

   address public immutable MY_ADDRESS;

   constructor() {
       MY_ADDRESS = msg.sender;
   }

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

https://github.com/bibhu-padhy/learn-web3

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