1234567891011121314151617181920212223242526272829 |
- //
- // A common case for errors is a situation where we're expecting to
- // have a value OR something has gone wrong. Take this example:
- //
- // var text: Text = getText("foo.txt");
- //
- // What happens if getText() can't find "foo.txt"? How do we express
- // this in Zig?
- //
- // Zig lets us make what's called an "error union" which is a value
- // which could either be a regular value OR an error from a set:
- //
- // var text: MyErrorSet!Text = getText("foo.txt");
- //
- // For now, let's just see if we can try making an error union!
- //
- const std = @import("std");
- const MyNumberError = error{TooSmall};
- pub fn main() void {
- var my_number: ??? = 5;
- // Looks like my_number will need to either store a number OR
- // an error. Can you set the type correctly above?
- my_number = MyNumberError.TooSmall;
- std.debug.print("I compiled!", .{});
- }
|