diff options
Diffstat (limited to 'exercises')
| -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}); +} |
