diff options
author | Dave Gauer <dave@ratfactor.com> | 2021-05-09 14:25:51 -0400 |
---|---|---|
committer | Dave Gauer <dave@ratfactor.com> | 2021-05-09 14:25:51 -0400 |
commit | b86230d1609d0eb8a6356f6e988c3b06d1e7342f (patch) | |
tree | 0db501ff243a2b3b1809cad108e961e27cdd51ad /exercises | |
parent | da3ec19000ee124371793ec3e846e5c2c1b164c2 (diff) | |
download | ziglings-b86230d1609d0eb8a6356f6e988c3b06d1e7342f.tar.gz ziglings-b86230d1609d0eb8a6356f6e988c3b06d1e7342f.tar.bz2 ziglings-b86230d1609d0eb8a6356f6e988c3b06d1e7342f.tar.xz ziglings-b86230d1609d0eb8a6356f6e988c3b06d1e7342f.zip |
add ex081 anon structs 2
Diffstat (limited to 'exercises')
-rw-r--r-- | exercises/081_anonymous_structs2.zig | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/exercises/081_anonymous_structs2.zig b/exercises/081_anonymous_structs2.zig new file mode 100644 index 0000000..6871cc1 --- /dev/null +++ b/exercises/081_anonymous_structs2.zig @@ -0,0 +1,47 @@ +// +// An anonymous struct value LITERAL (not to be confused with a +// struct TYPE) uses '.{}' syntax: +// +// .{ +// .center_x = 15, +// .center_y = 12, +// .radius = 6, +// } +// +// These literals are always evaluated entirely at compile-time. +// The example above could be coerced into the i32 variant of the +// "circle struct" from the last exercise. +// +// Or you can let them remain entirely anonymous as in this +// example: +// +// fn bar(foo: anytype) void { +// print("a:{} b:{}\n", .{foo.a, foo.b}); +// } +// +// bar(.{ +// .a = true, +// .b = false, +// }); +// +// The example above prints "a:true b:false". +// +const print = @import("std").debug.print; + +pub fn main() void { + printCircle(.{ + .center_x = @as(u32, 205), + .center_y = @as(u32, 187), + .radius = @as(u32, 12), + }); +} + +// Please complete this function which prints an anonymous struct +// representing a circle. +fn printCircle(???) void { + print("x:{} y:{} radius:{}\n", .{ + circle.center_x, + circle.centaur_y, + circle.radius, + }); +} |