diff options
author | Dave Gauer <dave@ratfactor.com> | 2021-01-31 17:48:34 -0500 |
---|---|---|
committer | Dave Gauer <dave@ratfactor.com> | 2021-01-31 17:48:34 -0500 |
commit | c70fa5f58f5ca2dc010f00caee19027069a09131 (patch) | |
tree | 9f7d352065d282c15a75aa4c4168216e69a762f8 /28_defer2.zig | |
parent | 2de8a8c54d7090dd063bed8b6b283c2fcb452e43 (diff) | |
download | ziglings-c70fa5f58f5ca2dc010f00caee19027069a09131.tar.gz ziglings-c70fa5f58f5ca2dc010f00caee19027069a09131.tar.bz2 ziglings-c70fa5f58f5ca2dc010f00caee19027069a09131.tar.xz ziglings-c70fa5f58f5ca2dc010f00caee19027069a09131.zip |
Adding exs 27-32
Diffstat (limited to '28_defer2.zig')
-rw-r--r-- | 28_defer2.zig | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/28_defer2.zig b/28_defer2.zig new file mode 100644 index 0000000..5c991da --- /dev/null +++ b/28_defer2.zig @@ -0,0 +1,29 @@ +// +// Now that you know how "defer" works, let's do something more +// interesting with it. +// +const std = @import("std"); + +pub fn main() void { + const animals = [_]u8{ 'g', 'c', 'd', 'd', 'g', 'z' }; + + for (animals) |a| printAnimal(a); + + + std.debug.print("done.\n", .{}); +} + +// This function is _supposed_ to print an animal name in parentheses +// like "(Goat) ", but we somehow need to print the end parenthesis +// even though this function can return in four different places! +fn printAnimal(animal: u8) void { + std.debug.print("(", .{}); + + std.debug.print(") ", .{}); // <---- how!? + + if (animal == 'g'){ std.debug.print("Goat", .{}); return; } + if (animal == 'c'){ std.debug.print("Cat", .{}); return; } + if (animal == 'd'){ std.debug.print("Dog", .{}); return; } + + std.debug.print("Unknown", .{}); +} |