diff options
Diffstat (limited to '21_errors.zig')
-rw-r--r-- | 21_errors.zig | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/21_errors.zig b/21_errors.zig deleted file mode 100644 index 34c5e18..0000000 --- a/21_errors.zig +++ /dev/null @@ -1,46 +0,0 @@ -// -// Believe it or not, sometimes things to wrong in programs. -// -// In Zig, an error is a value. Errors are named so we can identify -// things that can go wrong. Errors are created in "error sets", which -// are just a collection of named errors. -// -// We have the start of an error set, but we're missing the condition -// "TooSmall". Please add it where needed! -const MyNumberError = error{ - TooBig, - ???, - TooFour, -}; - -const std = @import("std"); - -pub fn main() void { - var nums = [_]u8{2,3,4,5,6}; - - for (nums) |n| { - std.debug.print("{}", .{n}); - - const number_error = numberFail(n); - - if (number_error == MyNumberError.TooBig) { - std.debug.print(">4. ", .{}); - } - if (???) { - std.debug.print("<4. ", .{}); - } - if (number_error == MyNumberError.TooFour) { - std.debug.print("=4. ", .{}); - } - } - - std.debug.print("\n", .{}); -} - -// Notice how this function can return any member of the MyNumberError -// error set. -fn numberFail(n: u8) MyNumberError { - if(n > 4) return MyNumberError.TooBig; - if(n < 4) return MyNumberError.TooSmall; // <---- this one is free! - return MyNumberError.TooFour; -} |