Assembly w Sway jest opcjonalny, ale jest dostępny, gdy musisz wycisnąć każdą kroplę wydajności i przejąć bezpośrednią kontrolę nad FuelVM. Rozłóżmy to na czynniki 🧵
🔧 Dlaczego używać Assembly? → Optymalizacja gazu: Pisanie logiki bezpośrednio w blokach asm zmniejsza koszty gazu, unikając wysokopoziomowych abstrakcji → Niski poziom kontroli: Bezpośredni dostęp do zestawu instrukcji FuelVM idealny dla autorów bibliotek lub zaawansowanych użytkowników, którzy potrzebują niestandardowego zarządzania pamięcią lub zachowania na poziomie opcode
✅ Podobnie jak Solidity, Sway również ma bloki `assembly`: Jednak główną formą dostępną dla użytkownika jest `asm {}`.
Oto jak to wygląda w Sway:
🔍 Zrozumienie bloku asm: To po prostu używa instrukcji add, aby dodać jeden do rejestru r1 i zapisuje wynik w rejestrze r2, a następnie go zwraca. Rejestr zwracający jest określony na końcu, po wszystkich instrukcjach asemblera. Składa się z nazwy rejestru i opcjonalnego typu zwrotnego (r2: u32). Jeśli typ zwrotny jest pominięty, domyślnie przyjmuje wartość u64.
Chcesz zwrócić wiele wartości? Możesz zmodyfikować krotkę w bloku assembly:
460