From e61bedaa25e4bc80847c4fb1508b5f4cdf35cd20 Mon Sep 17 00:00:00 2001 From: Luka Markušić Date: Sun, 31 May 2026 22:26:17 +0200 Subject: Add another defer exercise --- exercises/116_defer3.zig | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 exercises/116_defer3.zig (limited to 'exercises') 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}); +} -- cgit v1.2.3