Your AI powered learning assistant

Solidity и смарт-контракты Ethereum, урок #2 | Типы данных bool, uint, int

Введение

00:00:00

Сегодня мы продолжаем серию уроков по типам данных. Это второй урок, на котором мы поговорим о логическом или булевом типе данных, а также обсудим числа.

Особенности переменных в Solidity

00:00:30

Solidity - это статически типизированный язык, что означает, что мы должны указать тип переменных или констант, которые они могут хранить. Это отличается от JavaScript и Python, но обеспечивает такие преимущества, как немедленная обратная связь с компилятором и хранение в блокчейне.

Тип bool (логический)

00:02:00

Понимание логических значений (Boolean) Переменные типа В программировании переменные логического типа могут иметь два значения: true или false. Компьютеры работают с двоичной логикой, поэтому она либо черная, либо белая - без промежуточных значений. В более сложных случаях для представления значений истинности используется нечеткая логика.

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

Операции, доступные для bool

00:05:10

В дискретной математике логические операции типа AND, OR и NOT применяются к логическим значениям. Результат логической операции 'AND' является истинным, только если оба операнда равны true; в противном случае он возвращает false. Аналогично, операция 'OR' возвращает значение true, если хотя бы один операнд имеет значение true. Унарный оператор 'NOT', обозначаемый восклицательным знаком (!), возвращает противоположное значение своего операнда.

Целые числа в Solidity

00:07:00

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

Unsigned integers (uint)

00:07:50

Разница между целыми числами со знаком и без знака заключается в наличии знака. Целые числа без знака, такие как 5, не имеют знака и по своей сути положительны. Они обычно используются при работе с финансовыми данными, чтобы предотвратить отправку отрицательных значений.

Размерность и как она вычисляется

00:09:30

Понимание размерности В Unity каждый тип данных имеет свое собственное измерение, которое указывает максимально допустимое число. Например, когда мы пишем 'uint8', это означает, что мы используем 8 бит для хранения числа. Это позволяет нам представлять числа от 0 до 255.

Выбор подходящих типов данных Мы можем выбрать минимальное значение для нашей переменной, используя 'uint8' (который хранит значения от 0 до 255), а затем увеличить его с шагом 8 до uint256, если необходимо. Это помогает оптимизировать использование памяти и полезно для организации циклов со счетчиками или работы с большими объемами данных.

Signed integers (int)

00:12:45

Целые числа со знаком, или int, не особенно сложны. Важно помнить, что когда дело доходит до целого числа со знаком (int), ситуация, по сути, такая же. Чтобы объявить целое число со знаком, мы просто используем 'int'. Мы можем присваивать отрицательные значения, поскольку информация хранится с использованием знаков. Размер целого числа со знаком изменяется от 8 до 256 с шагом 8.

Размерность int

00:13:35

В двоичном формате данные хранятся с использованием битов. Каждый бит может хранить информацию о знаке (положительном или отрицательном) и величине числа. Наибольшее число, которое может быть сохранено с помощью 8 бит, равно 128, но поскольку у нас есть информация о знаке, наш диапазон становится от -128 до +127.

Математические и логические операции

00:15:00

Объясняется разница между типами данных int и float. Математические операции, такие как сложение, вычитание, умножение, деление, демонстрируются на примерах. Подчеркивается концепция округления при делении целых чисел. Также рассматриваются возведение в степень с использованием символа звездочки и вычисление остатков с использованием оператора по модулю.

Определение минимума и максимума размерности

00:16:45

В видео обсуждается концепция определения минимальной и максимальной размерности salt docks. В нем объясняется, как рассчитать минимальные и максимальные значения для определенного типа данных, используя такие переменные, как "вы" и "общедоступные". Процесс включает в себя сохранение состояния, компиляцию кода, удаление контрактов, вызов функций для отслеживания изменений в блокчейне.

Выход за пределы размерности и unchecked

00:18:13

Понимание размерности Исследуем концепцию размерности и ее влияние на хранение данных. Обсуждаем ограничения и границы при работе с максимально допустимыми значениями, такими как 255 в данном случае.

Обработка ошибок в смарт-контрактах Изучаем обработку ошибок в смарт-контрактах, уделяя особое внимание сценариям, когда транзакции превышают предопределенные пределы. Объясняем, как "отменить" используется для предотвращения несанкционированного увеличения сверх максимально допустимого значения.

Заключение

00:22:00

В этом видео мы исследуем концепцию увеличения и уменьшения значений. Докладчик подчеркивает, что важно не переименовывать переменные, полученные со значением 0. Кроме того, повторное получение 255 после однократного получения демонстрирует важное поведение.