diff options
Diffstat (limited to 'exercises/26_hello2.zig')
-rw-r--r-- | exercises/26_hello2.zig | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/exercises/26_hello2.zig b/exercises/26_hello2.zig new file mode 100644 index 0000000..237d27c --- /dev/null +++ b/exercises/26_hello2.zig @@ -0,0 +1,23 @@ +// +// Great news! Now we know enough to understand a "real" Hello World +// program in Zig - one that uses the system Standard Out resource...which +// can fail! +// +const std = @import("std"); + +// Take note that this main() definition now returns "!void" rather +// than just "void". Since there's no specific error type, this means +// that Zig will infer the error type. This is appropriate in the case +// of main(), but can have consequences elsewhere. +pub fn main() !void { + + // We get a Writer for Standard Out so we can print() to it. + const stdout = std.io.getStdOut().writer(); + + // Unlike std.debug.print(), the Standard Out writer can fail + // with an error. We don't care _what_ the error is, we want + // to be able to pass it up as a return value of main(). + // + // We just learned of a single statement which can accomplish this. + stdout.print("Hello world!\n", .{}); +} |