From 621d72db56dfcf7427b4bac238493afd6d37f780 Mon Sep 17 00:00:00 2001 From: Dave Gauer Date: Mon, 14 Jun 2021 11:26:04 -0400 Subject: New usize explanation 008, etc. --- exercises/008_quiz.zig | 17 +++++++++++++---- patches/patches/008_quiz.patch | 14 +++++++++----- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/exercises/008_quiz.zig b/exercises/008_quiz.zig index 309a8ae..5a81fb2 100644 --- a/exercises/008_quiz.zig +++ b/exercises/008_quiz.zig @@ -1,7 +1,7 @@ // // Quiz time! Let's see if you can fix this whole program. // -// This is meant to be challenging. +// You'll have to think about this one a bit. // // Let the compiler tell you what's wrong. // @@ -13,14 +13,23 @@ pub fn main() void { // What is this nonsense? :-) const letters = "YZhifg"; + // Note: usize is an unsigned integer type used for...sizes. + // The exact size of usize depends on the target CPU + // architecture. We could have used a u8 here, but usize is + // the idiomatic type to use for array indexing. + // + // There IS a problem on this line, but 'usize' isn't it. const x: usize = 1; - // This is something you haven't seen before: declaring an array - // without putting anything in it. There is no error here: + // Note: When you want to declare memory (an array in this + // case) without putting anything in it, you can set it to + // 'undefined'. There is no problem on this line. var lang: [3]u8 = undefined; // The following lines attempt to put 'Z', 'i', and 'g' into the - // 'lang' array we just created. + // 'lang' array we just created by indexing the array + // 'letters' with the variable 'x'. As you can see above, x=1 + // to begin with. lang[0] = letters[x]; x = 3; diff --git a/patches/patches/008_quiz.patch b/patches/patches/008_quiz.patch index 3d35a5a..a62be07 100644 --- a/patches/patches/008_quiz.patch +++ b/patches/patches/008_quiz.patch @@ -1,12 +1,16 @@ -16c16 -< const x: u8 = 1; +22c22 +< const x: usize = 1; --- -> var x: u8 = 1; -27c27 +> var x: usize = 1; +26c26 +< // 'undefined'. There is no problem on this line. +--- +> // 'undefined'. There is no error here. +36c36 < lang[???] = letters[x]; --- > lang[1] = letters[x]; -29,30c29,30 +38,39c38,39 < x = ???; < lang[2] = letters[???]; --- -- cgit v1.2.3-ZIG