Moved exercises to exercises because exercises
This commit is contained in:
parent
cf0920de31
commit
55ad7c32f2
45 changed files with 3 additions and 3 deletions
|
|
@ -1,49 +0,0 @@
|
|||
//
|
||||
// Let's revisit the very first error exercise. This time, we're going to
|
||||
// look at a special error-handling type of the "if" statement.
|
||||
//
|
||||
// if (foo) |value| {
|
||||
//
|
||||
// // foo was NOT an error; value is the non-error value of foo
|
||||
//
|
||||
// } else |err| {
|
||||
//
|
||||
// // foo WAS an error; err is the error value of foo
|
||||
//
|
||||
// }
|
||||
//
|
||||
// We'll take it even further and use a switch statement to handle
|
||||
// the error types.
|
||||
//
|
||||
const MyNumberError = error{
|
||||
TooBig,
|
||||
TooSmall,
|
||||
};
|
||||
|
||||
const std = @import("std");
|
||||
|
||||
pub fn main() void {
|
||||
var nums = [_]u8{2,3,4,5,6};
|
||||
|
||||
for (nums) |num| {
|
||||
std.debug.print("{}", .{num});
|
||||
|
||||
var n = numberMaybeFail(num);
|
||||
if (n) |value| {
|
||||
std.debug.print("=4. ", .{});
|
||||
} else |err| switch (err) {
|
||||
MyNumberError.TooBig => std.debug.print(">4. ", .{}),
|
||||
// Please add a match for TooSmall here and have it print: "<4. "
|
||||
}
|
||||
}
|
||||
|
||||
std.debug.print("\n", .{});
|
||||
}
|
||||
|
||||
// This time we'll have numberMaybeFail() return an error union rather
|
||||
// than a straight error.
|
||||
fn numberMaybeFail(n: u8) MyNumberError!u8 {
|
||||
if(n > 4) return MyNumberError.TooBig;
|
||||
if(n < 4) return MyNumberError.TooSmall;
|
||||
return n;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue