Solidity и смарт-контракты Ethereum, урок #21 | Yul, memory, calldata, селекторы функций
В этом уроке мы обсудим довольно важный вопрос: что же такое memory и calldata, в чём их отличия и как они работают? Почему calldata нельзя менять? Почему хранение в memory дороже, чем в calldata? Мы сделаем серию экспериментов, чтобы рассмотреть особенности этих “хранилищ“ на примерах. Также мы отдельно обсудим селекторы функций и узнаем, как они кодируются.
Таймкоды:
00:00 Введение
01:20 Как организована память (memory)?
03:05 Указатель на свободное место в памяти
04:40 Считываем строку напрямую из памяти
06:30 Массивы с фиксированной длиной в памяти
07:35 Что такое calldata?
09:50 Что такое селектор функции и как он кодируется?
12:10 Читаем элементы массива из calldata напрямую
13:05 Как в calldata хранятся строки?
15:20 Как в calldata хранятся динамические массивы?
17:10 Что из всего этого следует?
Сообщество программистов
(программирование, языки программирования, курсы, книги, обзоры и др.)