//! this is a top level doc, starts with "//!" const std = @import("std"); pub fn main() anyerror!void {  const stdout = std.io.getStdOut().writer();  try stdout.print("Hello, {}!\n", .{"world"}); } const expect = std.testing.expect; test "comments" {  // comments start with "//" until newline  // foo bar baz  const x = true; // another comment  expect(x); } /// a doc comment starts with "///" /// multiple lines are merged together const Timestamp = struct {  /// number of seconds since epoch  seconds: i64,  /// number of nanoseconds past the second  nano: u32,  const Self = @This();  pub fn unixEpoch() Self {  return Self{  .seconds = 0,  .nanos = 0,  };  } }; const my_val = switch (std.Target.current.os.tag) {  .linux => "Linux",  else => "not Linux", }; const Book = enum {  paperback,  hardcover,  ebook,  pdf, }; const TokenType = union(enum) {  int: isize,  float: f64,  string: []const u8, }; const array_lit: [4]u8 = .{ 11, 22, 33, 44 }; const sentinal_lit = [_:0]u8{ 1, 2, 3, 4 }; test "address of syntax" {  // Get the address of a variable:  const x: i32 = 1234;  const x_ptr = &x;  // Dereference a pointer:  expect(x_ptr.* == 1234);  // When you get the address of a const variable, you get a const pointer to a single item.  expect(@TypeOf(x_ptr) == *const i32);  // If you want to mutate the value, you'd need an address of a mutable variable:  var y: i32 = 5678;  const y_ptr = &y;  expect(@TypeOf(y_ptr) == *i32);  y_ptr.* += 1;  expect(y_ptr.* == 5679); } // integer literals const decimal_int = 98222; const hex_int = 0xff; const another_hex_int = 0xFF; const octal_int = 0o755; const binary_int = 0b11110000; // underscores may be placed between two digits as a visual separator const one_billion = 1_000_000_000; const binary_mask = 0b1_1111_1111; const permissions = 0o7_5_5; const big_address = 0xFF80_0000_0000_0000; // float literals const floating_point = 123.0E+77; const another_float = 123.0; const yet_another = 123.0e+77; const hex_floating_point = 0x103.70p-5; const another_hex_float = 0x103.70; const yet_another_hex_float = 0x103.70P-5; // underscores may be placed between two digits as a visual separator const lightspeed = 299_792_458.000_000; const nanosecond = 0.000_000_001; const more_hex = 0x1234_5678.9ABC_CDEFp-10; fn max(comptime T: type, a: T, b: T) T {  return if (a > b) a else b; }