Сборка в Sway является необязательной, но она доступна, когда вам нужно выжать каждую каплю производительности и взять под контроль FuelVM. Давайте разберем это 🧵
🔧 Почему использовать Assembly? → Оптимизация газа: Написание логики непосредственно в блоках asm снижает затраты на газ, избегая высокоуровневых абстракций → Низкоуровневый контроль: Прямой доступ к набору инструкций FuelVM идеально подходит для авторов библиотек или опытных пользователей, которым необходимо управлять памятью или поведение на уровне opcode.
✅ Так же, как и Solidity, Sway также имеет блоки `assembly`: Но основная форма, с которой взаимодействует пользователь, это `asm {}`.
Вот как это выглядит в Sway:
🔍 Понимание блока asm: Это просто использует инструкцию add, чтобы добавить один к регистру r1 и сохранить результат в регистре r2, а затем вернуть его. Регистры возврата указываются в конце, после всех инструкций ассемблера. Он состоит из имени регистра и необязательного типа возврата (r2: u32). Если тип возврата опущен, по умолчанию используется u64.
Хотите вернуть несколько значений? Вы можете изменить кортеж в блоке сборки:
48