Moved exercises to exercises because exercises
This commit is contained in:
parent
cf0920de31
commit
55ad7c32f2
45 changed files with 3 additions and 3 deletions
49
35_enums.zig
49
35_enums.zig
|
|
@ -1,49 +0,0 @@
|
|||
//
|
||||
// Remember that little mathematical virtual machine we made using the
|
||||
// "unreachable" statement? Well, there were two problems with the
|
||||
// way we were using op codes:
|
||||
//
|
||||
// 1. Having to remember op codes by number is no good.
|
||||
// 2. We had to use "unreachable" because Zig had no way of knowing
|
||||
// how many valid op codes there were.
|
||||
//
|
||||
// An "enum" is a Zig construct that lets you give names to numeric
|
||||
// values and store them in a set. They look a lot like error sets:
|
||||
//
|
||||
// const Fruit = enum{ apple, pear, orange };
|
||||
//
|
||||
// const my_fruit = Fruit.apple;
|
||||
//
|
||||
// Let's use an enum in place of the numbers we were using in the
|
||||
// previous version!
|
||||
//
|
||||
const std = @import("std");
|
||||
|
||||
// Please complete the enum!
|
||||
const Ops = enum{ ??? };
|
||||
|
||||
pub fn main() void {
|
||||
const operations = [_]Ops{
|
||||
Ops.inc,
|
||||
Ops.inc,
|
||||
Ops.inc,
|
||||
Ops.pow,
|
||||
Ops.dec,
|
||||
Ops.dec
|
||||
};
|
||||
|
||||
var current_value: u32 = 0;
|
||||
|
||||
for (operations) |op| {
|
||||
switch (op) {
|
||||
Ops.inc => { current_value += 1; },
|
||||
Ops.dec => { current_value -= 1; },
|
||||
Ops.pow => { current_value *= current_value; },
|
||||
// No "else" needed! Why is that?
|
||||
}
|
||||
|
||||
std.debug.print("{} ", .{current_value});
|
||||
}
|
||||
|
||||
std.debug.print("\n", .{});
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue