diff options
| author | Chris Boesch <chrboesch@noreply.codeberg.org> | 2026-06-21 17:29:19 +0200 |
|---|---|---|
| committer | Chris Boesch <chrboesch@noreply.codeberg.org> | 2026-06-21 17:29:19 +0200 |
| commit | fe1c9fb9bd1ba88b2b37ffa62dd454bfbe521d4a (patch) | |
| tree | 586d05343f5c53a994f1535f60a875b4a24b9a33 /exercises | |
| parent | 935d26828036da962f5c22738d86e8530a3819a2 (diff) | |
| parent | 151450cc7ddc188ec69d066bdc5f4a85c4210fbe (diff) | |
Merge branch 'main' into fix_typo
Diffstat (limited to 'exercises')
| -rw-r--r-- | exercises/043_pointers5.zig | 2 | ||||
| -rw-r--r-- | exercises/047_methods.zig | 18 | ||||
| -rw-r--r-- | exercises/107_threading.zig | 2 | ||||
| -rw-r--r-- | exercises/108_threading2.zig | 2 | ||||
| -rw-r--r-- | exercises/113_quiz9.zig | 2 | ||||
| -rw-r--r-- | exercises/114_packed.zig | 4 | ||||
| -rw-r--r-- | exercises/115_packed2.zig | 6 |
7 files changed, 27 insertions, 9 deletions
diff --git a/exercises/043_pointers5.zig b/exercises/043_pointers5.zig index 9e2fa6f..3117639 100644 --- a/exercises/043_pointers5.zig +++ b/exercises/043_pointers5.zig @@ -1,6 +1,6 @@ // // As with integers, you can pass a pointer to a struct when you -// will wish to modify that struct. Pointers are also useful when +// wish to modify that struct. Pointers are also useful when // you need to store a reference to a struct (a "link" to it). // // const Vertex = struct{ x: u32, y: u32, z: u32 }; diff --git a/exercises/047_methods.zig b/exercises/047_methods.zig index 3221ca2..3e88719 100644 --- a/exercises/047_methods.zig +++ b/exercises/047_methods.zig @@ -37,6 +37,24 @@ // self, others use a lowercase version of the type name, but feel // free to use whatever is most appropriate. // +// "But hold on," you say, eyeing a() and b() suspiciously, "why +// does one take 'self' and another take '*self'?" Sharp eye! +// +// It all comes down to a single question: does the function need +// to CHANGE the struct? +// +// * Needs to change it? Take a pointer (*Bar). Without it you'd +// be scribbling on a COPY, and your changes would evaporate the +// instant the function returns. Poof. +// * Only reads it? Plain Bar is just fine. +// (For a big, bulky struct you might still write *const Bar to +// avoid copying it around, but for small ones a copy is cheap.) +// +// You'll see this below: zap() takes 'self: HeatRay' by value +// because it only reads the ray's damage, but it takes the alien +// as '*Alien' because zapping is supposed to HURT - and that means +// changing the alien's health for real, not on a throwaway copy. +// // Okay, you're armed. // // Now, please zap the alien structs until they're all gone or diff --git a/exercises/107_threading.zig b/exercises/107_threading.zig index 3c3fa21..2b7d4c0 100644 --- a/exercises/107_threading.zig +++ b/exercises/107_threading.zig @@ -1,5 +1,5 @@ // -// In Exercises 84-91, we learned about Zig's Io interface for +// In Exercises 85-94 and quiz 95, we learned about Zig's Io interface for // concurrent execution: io.async(), Group, Select, and Futures. // Under the hood, the Threaded backend manages a pool of real // OS threads for you - including scheduling, cancellation, and diff --git a/exercises/108_threading2.zig b/exercises/108_threading2.zig index bbf8d78..e1b35ac 100644 --- a/exercises/108_threading2.zig +++ b/exercises/108_threading2.zig @@ -46,7 +46,7 @@ // 1,000,000,000 partial values. And for each additional digit we have to // add a zero. // Even fast computers - and I mean really fast computers - get a bit warmer -// on the CPU when it comes to really many digits. But the 8 digits are +// on the CPU when it comes to a large number of digits. But 8 digits are // enough for us for now, because we want to understand the principle and // nothing more, right? // diff --git a/exercises/113_quiz9.zig b/exercises/113_quiz9.zig index 8f5cb61..8d1da9c 100644 --- a/exercises/113_quiz9.zig +++ b/exercises/113_quiz9.zig @@ -14,7 +14,7 @@ // // A common activity in microcontroller programming is setting and clearing // bits on input and output pins. This lets you control LEDs, sensors, motors -// and more! In a previous exercise (097_bit_manipulation.zig) you learned how +// and more! In a previous exercise (100_bit_manipulation.zig) you learned how // to swap two bytes using the ^ (XOR - exclusive or) operator. This quiz will // test your knowledge of bit manipulation in Zig while giving you a taste of // what it's like to control registers in a real microcontroller. Included at diff --git a/exercises/114_packed.zig b/exercises/114_packed.zig index 933ae0a..74ec7a1 100644 --- a/exercises/114_packed.zig +++ b/exercises/114_packed.zig @@ -1,6 +1,6 @@ // // We've already learned plenty about bit manipulation using bitwise operations -// in exercises 097 and 098 and in quiz 110. The techniques we already know work +// in exercises 100 and 101 and in quiz 113. The techniques we already know work // just fine, but creating masks and shifting individual bits around can become // quite tedious and unwieldy pretty quickly. // What if there was a better, a more convenient way to control individual bits? @@ -78,7 +78,7 @@ const FLG = packed struct(u8) { content_checksum: bool, content_size: bool, block_checksum: bool, - block_indepencence: bool, + block_independence: bool, version: u2, }; diff --git a/exercises/115_packed2.zig b/exercises/115_packed2.zig index 2b6b558..2a772d7 100644 --- a/exercises/115_packed2.zig +++ b/exercises/115_packed2.zig @@ -1,5 +1,5 @@ // -// We've already learned about switch statements in exercises 030, 031 and 108. +// We've already learned about switch statements in exercises 030, 031 and 111. // They also work with packed containers: const S = packed struct(u2) { @@ -51,11 +51,11 @@ comptime { // // Try to make the float below negative: -/// IEEE 754 half precision float +// IEEE 754 binary16 floating-point format const Float = packed union(u16) { value: f16, bits: packed struct(u16) { - mantissa: u10, + significand: u10, exponent: u5, sign: u1, }, |
