blob: 6060bf1771186b87a22239759cbe68d161c92806 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
//
// One way to deal with error unions is to "catch" any error and
// replace it with a default value.
//
// foo = canFail() catch 6;
//
// If canFail() fails, foo will equal 6.
//
const std = @import("std");
const MyNumberError = error{ TooSmall };
pub fn main() void {
var a: u32 = addTwenty(44) catch 22;
var b: u32 = addTwenty(4) ??? 22;
std.debug.print("a={}, b={}", .{a,b});
}
// Please provide the return type from this function.
// Hint: it'll be an error union.
fn addTwenty(n: u32) ??? {
if (n < 5) {
return MyNumberError.TooSmall;
} else {
return n + 20;
}
}
|