diff options
Diffstat (limited to 'exercises/52_slices.zig')
-rw-r--r-- | exercises/52_slices.zig | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/exercises/52_slices.zig b/exercises/52_slices.zig deleted file mode 100644 index 98177cd..0000000 --- a/exercises/52_slices.zig +++ /dev/null @@ -1,49 +0,0 @@ -// -// We've seen that passing arrays around can be awkward. Perhaps you -// remember a particularly horrendous function definition from quiz3? -// This function can only take arrays that are exactly 4 items long! -// -// fn printPowersOfTwo(numbers: [4]u16) void { ... } -// -// That's the trouble with arrays - their size is part of the data -// type and must be hard-coded into every usage of that type. This -// digits array is a [10]u8 forever and ever: -// -// var digits = [10]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; -// -// Thankfully, Zig has slices, which let you dynamically point to a -// start item and provide a length. Here are slices of our digit -// array: -// -// const foo = digits[0..1]; // 0 -// const bar = digits[3..9]; // 3 4 5 6 7 8 -// const all = digits[0..]; // 0 1 2 3 4 5 6 7 8 9 -// -// As you can see, a slice [x..y] defines a first item by index x and -// a length y (where y-1 is the index of the last item). Leaving y off -// gives you the rest of the items. -// -// Notice that the type of a slice on an array of u8 items is []u8. -// -const std = @import("std"); - -pub fn main() void { - var cards = [8]u8{ 'A', '4', 'K', '8', '5', '2', 'Q', 'J' }; - - // Please put the first 4 cards in hand1 and the rest in hand2. - const hand1: []u8 = cards[???]; - const hand2: []u8 = cards[???]; - - std.debug.print("Hand1: ", .{}); - printHand(hand1); - - std.debug.print("Hand2: ", .{}); - printHand(hand2); -} - -// Please lend this function a hand. A u8 slice hand, that is. -fn printHand(hand: ???) void { - for (hand) |h| { - std.debug.print("{u} ", .{h}); - } -} |