mirror of
https://codeberg.org/ziglings/exercises.git
synced 2026-06-08 07:50:00 +00:00
56 lines
1.5 KiB
Zig
56 lines
1.5 KiB
Zig
//
|
|
// Zig has one array operators.
|
|
//
|
|
// You can use '++' to concatenate two arrays:
|
|
//
|
|
// const a = [_]u8{ 1,2 };
|
|
// const b = [_]u8{ 3,4 };
|
|
// const c = a ++ b ++ [_]u8{ 5 }; // equals 1 2 3 4 5
|
|
//
|
|
// Note that '++'' only operate on arrays while your program is
|
|
// _being compiled_. This special time is known in Zig
|
|
// parlance as "comptime" and we'll learn plenty more about that
|
|
// later.
|
|
//
|
|
const std = @import("std");
|
|
|
|
pub fn main() void {
|
|
const le = [_]u8{ 1, 3 };
|
|
const et = [_]u8{ 3, 7 };
|
|
|
|
// (Problem 1)
|
|
// Please set this array concatenating the two arrays above.
|
|
// It should result in: 1 3 3 7
|
|
const leet = ???;
|
|
|
|
// (Problem 2)
|
|
// Please set this array using repetition.
|
|
// It should result in: 1 0 0 1 1 0 0 1 1 0 0 1
|
|
const bit_pattern_unit = [_]u8{ ??? };
|
|
const bit_pattern: [3 * bit_pattern_unit.len]u8 = @bitCast(@as([3][bit_pattern_unit.len]u8, @splat(bit_pattern_unit)));
|
|
|
|
// Okay, that's all of the problems. Let's see the results.
|
|
//
|
|
// We could print these arrays with leet[0], leet[1],...but let's
|
|
// have a little preview of Zig 'for' loops instead:
|
|
//
|
|
// for (<item array>) |item| { <do something with item> }
|
|
//
|
|
// Don't worry, we'll cover looping properly in upcoming
|
|
// lessons.
|
|
//
|
|
std.debug.print("LEET: ", .{});
|
|
|
|
for (leet) |n| {
|
|
std.debug.print("{}", .{n});
|
|
}
|
|
|
|
std.debug.print(", Bits: ", .{});
|
|
|
|
for (bit_pattern) |n| {
|
|
std.debug.print("{}", .{n});
|
|
}
|
|
|
|
std.debug.print("\n", .{});
|
|
}
|