Урок 15. Работа с памятью в Solidity
Еще один сложный для понимания урок, который я пересматривал несколько раз.
Для меня лично, проблемы возникли не только с пониманием организации памяти, но и с добавление языка Yul, который я раньше не встречал в своей практике.
Тем не менее, он оказался не таким уж и навороченным, если посидеть с ним и разобраться, что к чему.
Видео урок - работа с памятью
К данному уроку можно вернуться в любой момент, так как он просто рассказывает про внутреннюю работу языка Solidity.
И, на данный момент, я встречал в различных видео всего раза два, когда требовалось использовать assembly и вытаскивать из памяти селектор или другие значение. Уверен, это уже знания продвинутого разработчика Solidity.
Я в течение дня все также буду выкладывать скрины и пояснения кода и работы памяти.
#урок #memory #calldata
Еще один сложный для понимания урок, который я пересматривал несколько раз.
Для меня лично, проблемы возникли не только с пониманием организации памяти, но и с добавление языка Yul, который я раньше не встречал в своей практике.
Тем не менее, он оказался не таким уж и навороченным, если посидеть с ним и разобраться, что к чему.
Видео урок - работа с памятью
К данному уроку можно вернуться в любой момент, так как он просто рассказывает про внутреннюю работу языка Solidity.
И, на данный момент, я встречал в различных видео всего раза два, когда требовалось использовать assembly и вытаскивать из памяти селектор или другие значение. Уверен, это уже знания продвинутого разработчика Solidity.
Я в течение дня все также буду выкладывать скрины и пояснения кода и работы памяти.
#урок #memory #calldata
YouTube
Solidity и смарт-контракты Ethereum, урок #21 | Yul, memory, calldata, селекторы функций
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
🔥1
Solidity резервирует 4 слота памяти, которые хранят в себе до 32 байтов, где первые два слота или 64 байта - это некое служебное пространство, оно уже использкется по умолчанию, и мы не будем обращаться к нему напрямую. Следующие 32 байта хранят в себе указатель на свободное место в памяти, который как бы говорит, что с этого момента ты можешь что-то записать в память. Потом идет пустой слот, после которого мы можем записывать свои данные.
Для того, чтобы обращаться к слотам памяти используют Yul (код с assemly в видео).
Чтобы найти значение строки, которое возвращается в bytes32, нужно найти указатель в памяти, а затем вычесть из него предполагаемый размер данных в байтах. Например, строка "test" точно поместится в 32 байта, поэтому код будет выглядеть как на скрине.
#accembly #memory #calldata #yul
Для того, чтобы обращаться к слотам памяти используют Yul (код с assemly в видео).
Чтобы найти значение строки, которое возвращается в bytes32, нужно найти указатель в памяти, а затем вычесть из него предполагаемый размер данных в байтах. Например, строка "test" точно поместится в 32 байта, поэтому код будет выглядеть как на скрине.
#accembly #memory #calldata #yul
🔥1
Основное различие calldata от memory заключается в том, что при использовании memory тратится больше газа, так как его можно перезаписывать.
Calldata же является неизменным значением. Другими словами, мы можем использовать calldata в своих функциях, но изменить его значение у нас не получится.
#accembly #memory #calldata #yul
Calldata же является неизменным значением. Другими словами, мы можем использовать calldata в своих функциях, но изменить его значение у нас не получится.
#accembly #memory #calldata #yul
🔥1