⏱️ Defer

defer odkłada wykonanie instrukcji do momentu wyjścia z funkcji.

Podstawowe użycie

fn processFile(path) { let file = openFile(path); defer { closeFile(file); } // Zawsze się wykona let data = readFile(file); if (data == null) { return null; // closeFile() wykona się przed return } return processData(data); }

Wiele defer (LIFO)

fn example() { defer { print("first"); } defer { print("second"); } defer { print("third"); } } // Output: third, second, first

Ochrona przed wyciekami

fn risky() { let lock = acquireLock(); defer { releaseLock(lock); } // Zwolni nawet przy throw doRiskyOperation(); // Może rzucić wyjątek }