diff options
| author | Luka Markušić <markusicluka@gmail.com> | 2026-05-31 22:26:17 +0200 |
|---|---|---|
| committer | Luka Markušić <markusicluka@gmail.com> | 2026-06-01 22:32:11 +0200 |
| commit | e61bedaa25e4bc80847c4fb1508b5f4cdf35cd20 (patch) | |
| tree | 89ce6d46b9d58a0373f2b44220f3df808fa1cf2e /exercises/116_defer3.zig | |
| parent | ac9f96459ce1ce2c1cec5605cf6075d0fbf559b7 (diff) | |
Add another defer exercise
Diffstat (limited to 'exercises/116_defer3.zig')
| -rw-r--r-- | exercises/116_defer3.zig | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/exercises/116_defer3.zig b/exercises/116_defer3.zig new file mode 100644 index 0000000..6e3cf6d --- /dev/null +++ b/exercises/116_defer3.zig @@ -0,0 +1,18 @@ +// +// When there are multiple defers in a single block, they are executed in reverse order. +// +const std = @import("std"); + +pub fn main() void { + var x: u32 = 100; + { + // Try reordering the statements to get the answer 42 + defer x = x / 10; + defer x = x + 11; + defer x = x * 2; + + // It might seem silly in this example, but it's important to know when + // deinitializing containers whose elements need to be deinitialized first. + } + std.debug.print("{d}\n", .{x}); +} |
