defer
Språkfeature: skjut upp körning av uttryck tills omslutande funktion returnerar. Garanterar cleanup oavsett early returns eller panics. Go-original (2009), Zig och Swift har också. Ersättning för try-finally / RAII.
Klassisk Go: defer file.Close() direkt efter file, _ := os.Open(...) — close kommer alltid hända, även vid error-return mitt i funktion. Multipla defers kör i LIFO-ordning (stack-baserat). Vanlig fälla: defer file.Close() i en loop — close ackumuleras tills function-exit, file-handles läcker. Lös genom inre function. Swift: defer { cleanup() } liknande. Zig: defer + errdefer (kör bara vid error-return). Modern resource-management-mönster — read som "Java try-finally med syntactic-sugar".