mirror of
https://codeberg.org/andyscott/ziglings.git
synced 2024-11-09 11:40:46 -05:00
Merge branch 'main' of github.com:ratfactor/ziglings into main
This commit is contained in:
commit
40656031c5
22 changed files with 46 additions and 47 deletions
|
@ -31,5 +31,5 @@ pub fn main() void {
|
|||
}
|
||||
|
||||
fn printPhrase(part1: []u8, part2: []u8, part3: []u8) void {
|
||||
std.debug.print("'{s} {s} {s}.' ", .{part1, part2, part3});
|
||||
std.debug.print("'{s} {s} {s}.' ", .{ part1, part2, part3 });
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ pub fn main() void {
|
|||
//
|
||||
// Also, check out our fancy formatting! b:0>4 means, "print
|
||||
// as a binary number, zero-pad right-aligned four digits."
|
||||
print("{b:0>4} + {b:0>4} = {b:0>4} ({})", .{a, b, my_result, overflowed});
|
||||
print("{b:0>4} + {b:0>4} = {b:0>4} ({})", .{ a, b, my_result, overflowed });
|
||||
|
||||
print(". Furthermore, ", .{});
|
||||
|
||||
|
@ -70,5 +70,5 @@ pub fn main() void {
|
|||
// this builtin to reverse the bits of a u8 integer.
|
||||
const input: u8 = 0b11110000;
|
||||
const tupni: u8 = @bitReverse(input);
|
||||
print("{b:0>8} backwards is {b:0>8}.\n", .{input, tupni});
|
||||
print("{b:0>8} backwards is {b:0>8}.\n", .{ input, tupni });
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ const Narcissus = struct {
|
|||
};
|
||||
|
||||
pub fn main() void {
|
||||
var narcissus: Narcissus = Narcissus {};
|
||||
var narcissus: Narcissus = Narcissus{};
|
||||
|
||||
// Oops! We cannot leave the 'me' and 'myself' fields
|
||||
// undefined. Please set them here:
|
||||
|
@ -70,7 +70,7 @@ pub fn main() void {
|
|||
// fix this call:
|
||||
const T2 = narcissus.fetchTheMostBeautifulType();
|
||||
|
||||
print("A {} loves all {}es. ", .{T1, T2});
|
||||
print("A {} loves all {}es. ", .{ T1, T2 });
|
||||
|
||||
// His final words as he was looking in
|
||||
// those waters he habitually watched
|
||||
|
|
|
@ -46,7 +46,7 @@ pub fn main() void {
|
|||
const const_int = 12345;
|
||||
const const_float = 987.654;
|
||||
|
||||
print("Immutable: {}, {d:.3}; ", .{const_int, const_float});
|
||||
print("Immutable: {}, {d:.3}; ", .{ const_int, const_float });
|
||||
|
||||
// But something changes when we assign the exact same values
|
||||
// to identifiers mutably with "var".
|
||||
|
@ -69,7 +69,7 @@ pub fn main() void {
|
|||
var_int = 54321;
|
||||
var_float = 456.789;
|
||||
|
||||
print("Mutable: {}, {d:.3}; ", .{var_int, var_float});
|
||||
print("Mutable: {}, {d:.3}; ", .{ var_int, var_float });
|
||||
|
||||
// Bonus: Now that we're familiar with Zig's builtins, we can
|
||||
// also inspect the types to see what they are, no guessing
|
||||
|
|
|
@ -49,7 +49,7 @@ pub fn main() void {
|
|||
count += 1;
|
||||
var a4: [count]u8 = .{'D'} ** count;
|
||||
|
||||
print("{s} {s} {s} {s}\n", .{a1, a2, a3, a4});
|
||||
print("{s} {s} {s} {s}\n", .{ a1, a2, a3, a4 });
|
||||
|
||||
// Builtin BONUS!
|
||||
//
|
||||
|
|
|
@ -62,9 +62,9 @@ const Schooner = struct {
|
|||
};
|
||||
|
||||
pub fn main() void {
|
||||
var whale = Schooner {.name = "Whale"};
|
||||
var shark = Schooner {.name = "Shark"};
|
||||
var minnow = Schooner {.name = "Minnow"};
|
||||
var whale = Schooner{ .name = "Whale" };
|
||||
var shark = Schooner{ .name = "Shark" };
|
||||
var minnow = Schooner{ .name = "Minnow" };
|
||||
|
||||
// Hey, we can't just pass this runtime variable as an
|
||||
// argument to the scaleMe() method. What would let us do
|
||||
|
|
|
@ -20,7 +20,7 @@ pub fn main() void {
|
|||
const s2 = makeSequence(u32, 5); // creates a [5]u32
|
||||
const s3 = makeSequence(i64, 7); // creates a [7]i64
|
||||
|
||||
print("s1={any}, s2={any}, s3={any}\n", .{s1, s2, s3});
|
||||
print("s1={any}, s2={any}, s3={any}\n", .{ s1, s2, s3 });
|
||||
}
|
||||
|
||||
// This function is pretty wild because it executes at runtime
|
||||
|
|
|
@ -54,12 +54,12 @@ fn makePath(from: *Place, to: *Place, dist: u8) Path {
|
|||
|
||||
// Using our new function, these path definitions take up considerably less
|
||||
// space in our program now!
|
||||
const a_paths = [_]Path{ makePath(&a, &b, 2) };
|
||||
const a_paths = [_]Path{makePath(&a, &b, 2)};
|
||||
const b_paths = [_]Path{ makePath(&b, &a, 2), makePath(&b, &d, 1) };
|
||||
const c_paths = [_]Path{ makePath(&c, &d, 3), makePath(&c, &e, 2) };
|
||||
const d_paths = [_]Path{ makePath(&d, &b, 1), makePath(&d, &c, 3), makePath(&d, &f, 7) };
|
||||
const e_paths = [_]Path{ makePath(&e, &c, 2), makePath(&e, &f, 1) };
|
||||
const f_paths = [_]Path{ makePath(&f, &d, 7) };
|
||||
const f_paths = [_]Path{makePath(&f, &d, 7)};
|
||||
//
|
||||
// But is it more readable? That could be argued either way.
|
||||
//
|
||||
|
|
|
@ -50,7 +50,7 @@ pub fn main() void {
|
|||
//
|
||||
// Luckily, the 'length' field makes it possible to still
|
||||
// work with this value.
|
||||
const foo = WeirdContainer {
|
||||
const foo = WeirdContainer{
|
||||
.data = "Weird Data!",
|
||||
.length = 11,
|
||||
};
|
||||
|
|
|
@ -26,4 +26,3 @@ fn foo() void {
|
|||
suspend {}
|
||||
print("async!\n", .{});
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ pub fn main() void {
|
|||
var com_title = com_frame;
|
||||
var org_title = org_frame;
|
||||
|
||||
print(".com: {s}, .org: {s}.\n", .{com_title, org_title});
|
||||
print(".com: {s}, .org: {s}.\n", .{ com_title, org_title });
|
||||
}
|
||||
|
||||
fn getPageTitle(url: []const u8) []const u8 {
|
||||
|
|
Loading…
Reference in a new issue