From 077a779f3d2fdfc03b2108c518cde2e6d4133ead Mon Sep 17 00:00:00 2001 From: Dave Gauer Date: Sun, 28 Feb 2021 11:00:20 -0500 Subject: [PATCH] Change default elephant tail to null (#25) It was confusing to see tail... = undefined in the struct definition and then if (tail == null) later in the exercise - it appears that the mismatch would be the issue - but that's distracting from the real issue: making the value optional! Changing the initial value to null is still correct, but won't distract. The only worry now is that the user will remember the undefined definition from the previous exercise and wonder if that has to be that way...but you can't win them all! --- exercises/46_optionals2.zig | 2 +- patches/patches/46_optionals2.patch | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/exercises/46_optionals2.zig b/exercises/46_optionals2.zig index 11f37aa..ffa5867 100644 --- a/exercises/46_optionals2.zig +++ b/exercises/46_optionals2.zig @@ -9,7 +9,7 @@ const std = @import("std"); // single quotes const Elephant = struct { letter: u8, - tail: *Elephant = undefined, // <---- make this optional! + tail: *Elephant = null, // <---- make this optional! visited: bool = false, }; diff --git a/patches/patches/46_optionals2.patch b/patches/patches/46_optionals2.patch index 18284da..5becede 100644 --- a/patches/patches/46_optionals2.patch +++ b/patches/patches/46_optionals2.patch @@ -1,11 +1,8 @@ 12c12 -< tail: *Elephant = undefined, // <---- make this optional! +< tail: *Elephant = null, // <---- make this optional! --- -> tail: ?*Elephant = undefined, -39,42c39 -< // We should stop once we encounter a tail that -< // does NOT point to another element. What can -< // we put here to make that happen? +> tail: ?*Elephant = null, // <---- make this optional! +42c42 < if (e.tail == null) ???; --- > if (e.tail == null) break;