Solidity. Смарт контракты и аудит
2.63K subscribers
246 photos
7 videos
18 files
555 links
Обучение Solidity. Уроки, аудит, разбор кода и популярных сервисов
Download Telegram
Swapping variables

Вы знали, что в Solidity можно делать свапы переменных (не уверен, как в этом случае правильно перевести).

Посмотрите на пример выше.

#swap #variable
👍92
Немного о переменных

В смарт контракте можно указать только 16 локальных переменных. Если их будет больше, то возникнет ошибка StackTooDeepException. Для того, чтобы избежать этого можно использовать так называемые block scoping.

Вообще, scope в Solidity это область видимости, которых, как мы знаем, может быть четыре: internal, external, private, public.

А block scoping - это такая техника, которая позволяет создать новый scope внутри функции, чтобы сократить число локальных переменных в стеке функции.

На скрине выше вы можете увидеть пример block scoping.

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

Чуть больше об этом можно прочитать в официальной документации Solidity, а реальный пример посмотреть тут, в контракте Uniswap.

#variable
👍64🔥1