Browse Source

Improved the explanation about passing arguments and added an example.

Chris Boesch 1 year ago
parent
commit
9844123dd1
2 changed files with 17 additions and 6 deletions
  1. 14 3
      exercises/051_values.zig
  2. 3 3
      patches/patches/051_values.patch

+ 14 - 3
exercises/051_values.zig

@@ -141,9 +141,20 @@ pub fn main() void {
     //
     // Moving along...
     //
-    // Passing arguments to functions is pretty much exactly like
-    // making an assignment to a const (since Zig enforces that ALL
-    // function parameters are const).
+    // When arguments are passed to a function,
+    // they are ALWAYS passed as constants within the function,
+    // regardless of how they were declared in the calling function.
+    //
+    // Example:
+    // fn foo(arg: u8) void {
+    //    arg = 42; // Error, 'arg' is const!
+    // }
+    //
+    // fn bar() void {
+    //    var arg: u8 = 12;
+    //    foo(arg);
+    //    ...
+    // }
     //
     // Knowing this, see if you can make levelUp() work as expected -
     // it should add the specified amount to the supplied character's

+ 3 - 3
patches/patches/051_values.patch

@@ -1,5 +1,5 @@
---- exercises/051_values.zig	2023-10-03 22:15:22.122241138 +0200
-+++ answers/051_values.zig	2023-10-05 20:04:07.072767194 +0200
+--- exercises/051_values.zig	2024-03-14 23:25:42.695020607 +0100
++++ answers/051_values.zig	2024-03-14 23:28:34.525109174 +0100
 @@ -87,7 +87,7 @@
      // Let's assign the std.debug.print function to a const named
      // "print" so that we can use this new name later!
@@ -9,7 +9,7 @@
  
      // Now let's look at assigning and pointing to values in Zig.
      //
-@@ -152,13 +152,13 @@
+@@ -163,13 +163,13 @@
      print("XP before:{}, ", .{glorp.experience});
  
      // Fix 1 of 2 goes here: