From 223fc79e441dab99297472a0cfe8a4c63e423b4e Mon Sep 17 00:00:00 2001 From: Alan CHUNG Date: Wed, 27 Mar 2024 16:40:24 +0800 Subject: 106 & 107 --- patches/patches/106_files.patch | 24 ++++++++++-------------- patches/patches/107_files2.patch | 26 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 14 deletions(-) create mode 100644 patches/patches/107_files2.patch (limited to 'patches') diff --git a/patches/patches/106_files.patch b/patches/patches/106_files.patch index 3fad939..ffe18ac 100644 --- a/patches/patches/106_files.patch +++ b/patches/patches/106_files.patch @@ -1,28 +1,24 @@ ---- exercises/106_files.zig -+++ answers/106_files.zig -@@ -35,9 +35,9 @@ pub fn main() !void { +--- exercises/106_files.zig 2024-03-27 16:36:44.593077000 +0800 ++++ answers/106_files.zig 2024-03-27 16:36:31.548155100 +0800 +@@ -35,7 +35,7 @@ // by doing nothing // // we want to catch error.PathAlreadyExists and do nothing -- ??? => { -- ???; -- }, -+ error.PathAlreadyExists => { -+ return; -+ }, +- ??? => {}, ++ error.PathAlreadyExists => {}, // if is any other unexpected error we just propagate it through else => return e, }; -@@ -46,7 +46,7 @@ pub fn main() !void { +@@ -44,7 +44,7 @@ // wait a minute // opening a directory might fail! // what should we do here? -- const output_dir: std.fs.Dir = cwd.openDir("output", .{}); -+ const output_dir: std.fs.Dir = try cwd.openDir("output", .{}); +- var output_dir: std.fs.Dir = cwd.openDir("output", .{}); ++ var output_dir: std.fs.Dir = try cwd.openDir("output", .{}); + defer output_dir.close(); // we try to open the file `zigling.txt`, - // and propagate the error up if there are any errors -@@ -56,7 +56,7 @@ pub fn main() !void { +@@ -55,7 +55,7 @@ // but here we are not yet done writing to the file // if only there are a keyword in zig that // allow you "defer" code execute to the end of scope... diff --git a/patches/patches/107_files2.patch b/patches/patches/107_files2.patch new file mode 100644 index 0000000..a275c70 --- /dev/null +++ b/patches/patches/107_files2.patch @@ -0,0 +1,26 @@ +--- exercises/107_files2.zig 2024-03-27 16:36:56.733062700 +0800 ++++ answers/107_files2.zig 2024-03-27 16:36:52.894505100 +0800 +@@ -33,7 +33,7 @@ + // initalize an array of u8 with all letter 'A'. + // we need to pick a size of the array, 64 seems like a good number. + // fix the initalization below +- var content = ['A']*64; ++ var content = [_]u8{'A'} ** 64; + // this should print out : `AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA` + std.debug.print("{s}\n", .{content}); + +@@ -41,12 +41,12 @@ + // can you go here to find a way to read the content ? + // https://ziglang.org/documentation/master/std/#std.fs.File + // hint: you might find two answer that are both vaild in this case +- const byte_read = zig_read_the_file_or_i_will_fight_you(&content); ++ const byte_read = try file.read(&content); + + // Woah, too screamy, I know you're excited for zigling time but tone it down a bit + // Can you print only what we read from the file ? + std.debug.print("Successfully Read {} byte: {s}\n", .{ + byte_read, +- content, // change this line only ++ content[0..byte_read], // change this line only + }); + } -- cgit v1.2.3