methods NOT namespaced like i expected

This commit is contained in:
Dave Gauer 2021-06-30 19:18:13 -04:00
parent 843fd65882
commit 290ba908ec
2 changed files with 23 additions and 9 deletions

View file

@ -176,11 +176,8 @@ const TripItem = union(enum) {
path: *const Path, path: *const Path,
// This is a little helper function to print the two different // This is a little helper function to print the two different
// types of item correctly. Note how this "print()" is namespaced // types of item correctly.
// to the TripItem union and doesn't interfere with calling the fn printMe(self: TripItem) void {
// "print()" from the standard library we imported at the top of
// this program.
fn print(self: TripItem) void {
switch (self) { switch (self) {
// Oops! The hermit forgot how to capture the union values // Oops! The hermit forgot how to capture the union values
// in a switch statement. Please capture both values as // in a switch statement. Please capture both values as
@ -427,7 +424,7 @@ fn printTrip(trip: []?TripItem) void {
while (i > 0) { while (i > 0) {
i -= 1; i -= 1;
if (trip[i] == null) continue; if (trip[i] == null) continue;
trip[i].?.print(); trip[i].?.printMe();
} }
print("\n", .{}); print("\n", .{});

View file

@ -1,14 +1,31 @@
188,189c188,189 185,186c185,186
< .place => print("{s}", .{p.name}), < .place => print("{s}", .{p.name}),
< .path => print("--{}->", .{p.dist}), < .path => print("--{}->", .{p.dist}),
--- ---
> .place => |p| print("{s}", .{p.name}), > .place => |p| print("{s}", .{p.name}),
> .path => |p| print("--{}->", .{p.dist}), > .path => |p| print("--{}->", .{p.dist}),
251c251 248c248
< if (place == entry.*.?.place) return entry; < if (place == entry.*.?.place) return entry;
--- ---
> if (place == entry.*.?.place) return &entry.*.?; > if (place == entry.*.?.place) return &entry.*.?;
305c305 302c302
< fn getTripTo(self: *HermitsNotebook, trip: []?TripItem, dest: *Place) void { < fn getTripTo(self: *HermitsNotebook, trip: []?TripItem, dest: *Place) void {
--- ---
> fn getTripTo(self: *HermitsNotebook, trip: []?TripItem, dest: *Place) TripError!void { > fn getTripTo(self: *HermitsNotebook, trip: []?TripItem, dest: *Place) TripError!void {
336d335
< // Note: you do not need to fix anything here.
419,422c418
< // We convert the usize length to a u8 with @intCast(), a
< // builtin function just like @import(). We'll learn about
< // these properly in a later exercise.
< var i: u8 = @intCast(u8, trip.len);
---
> var i: u8 = @intCast(u8, trip.len); // convert usize length
449,452c445,446
< // Search" (BFS).
< //
< // By tracking "lowest cost" paths, we can also say that we're
< // performing a "least-cost search".
---
> // Search" (BFS). By tracking "lowest cost" paths, we can also say
> // that we're performing a "least-cost search".