47 lines
1.4 KiB
HTML
47 lines
1.4 KiB
HTML
<h2>Full example</h2>
|
|
<pre><code>const std = @import("std");
|
|
|
|
pub fn main() !void {
|
|
// If this program is run without stdout attached, exit with an error.
|
|
const stdout_file = try std.io.getStdOut();
|
|
// If this program encounters pipe failure when printing to stdout, exit
|
|
// with an error.
|
|
try stdout_file.write("Hello, world!\n");
|
|
}
|
|
|
|
const warn = @import("std").debug.warn;
|
|
|
|
pub fn main() void {
|
|
warn("Hello, world!\n");
|
|
}
|
|
|
|
const assert = @import("std").debug.assert;
|
|
|
|
test "comments" {
|
|
// Comments in Zig start with "//" and end at the next LF byte (end of line).
|
|
// The below line is a comment, and won't be executed.
|
|
|
|
//assert(false);
|
|
|
|
const x = true; // another comment
|
|
assert(x);
|
|
}
|
|
|
|
/// A structure for storing a timestamp, with nanosecond precision (this is a
|
|
/// multiline doc comment).
|
|
const Timestamp = struct {
|
|
/// The number of seconds since the epoch (this is also a doc comment).
|
|
seconds: i64, // signed so we can represent pre-1970 (not a doc comment)
|
|
/// The number of nanoseconds past the second (doc comment again).
|
|
nanos: u32,
|
|
|
|
/// Returns a `Timestamp` struct representing the Unix epoch; that is, the
|
|
/// moment of 1970 Jan 1 00:00:00 UTC (this is a doc comment too).
|
|
pub fn unixEpoch() Timestamp {
|
|
return Timestamp{
|
|
.seconds = 0,
|
|
.nanos = 0,
|
|
};
|
|
}
|
|
};</code></pre>
|