diff options
author | Dave Gauer <dave@ratfactor.com> | 2021-02-06 15:54:56 -0500 |
---|---|---|
committer | Dave Gauer <dave@ratfactor.com> | 2021-02-06 15:54:56 -0500 |
commit | 507355ec3b1066c707e19816b86ac1fb56fc0385 (patch) | |
tree | 503c6e848879575646b39fab63d7888ee4d67576 /37_structs.zig | |
parent | 2cded107cd75a4024d9d0f76055ef48432301fad (diff) | |
download | ziglings-507355ec3b1066c707e19816b86ac1fb56fc0385.tar.gz ziglings-507355ec3b1066c707e19816b86ac1fb56fc0385.tar.bz2 ziglings-507355ec3b1066c707e19816b86ac1fb56fc0385.tar.xz ziglings-507355ec3b1066c707e19816b86ac1fb56fc0385.zip |
Added ex. 37,38 structs
Diffstat (limited to '37_structs.zig')
-rw-r--r-- | 37_structs.zig | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/37_structs.zig b/37_structs.zig new file mode 100644 index 0000000..dd4b633 --- /dev/null +++ b/37_structs.zig @@ -0,0 +1,59 @@ +// +// Being able to group values together lets us turn this: +// +// point1_x = 3; +// point1_y = 16; +// point1_z = 27; +// point2_x = 7; +// point2_y = 13; +// point2_z = 34; +// +// into this: +// +// point1 = Point{ .x=3, .y=16, .y=27 }; +// point2 = Point{ .x=7, .y=13, .y=34 }; +// +// The Point above is an example of a "struct" (short for "structure"). +// Here's how it could have been defined: +// +// const Point = struct{ x: u32, y: u32, z: u32 }; +// +// Let's store something fun with a struct: a roleplaying character! +// +const std = @import("std"); + +// We'll use an enum to specify the character class. +const Class = enum{ + wizard, + thief, + bard, + warrior, +}; + +// Please add a new property to this struct called "health" and make +// it a u8 integer type. +const Character = struct{ + class: Class, + gold: u32, + experience: u32, +}; + +pub fn main() void { + // Please initialize Glorp with 100 health. + var glorp_the_wise = Character{ + .class = Class.wizard, + .gold = 20, + .experience = 10, + }; + + // Glorp gains some gold. + glorp_the_wise.gold += 5; + + // Ouch! Glorp takes a punch! + glorp_the_wise.health -= 10; + + std.debug.print("Your wizard has {} health and {} gold.", .{ + glorp_the_wise.health, + glorp_the_wise.gold + }); +} |