Add ex079 quoted identifiers

This commit is contained in:
Dave Gauer 2021-05-09 13:10:09 -04:00
parent d4f5684450
commit 34ac5f6742
4 changed files with 48 additions and 0 deletions

View file

@ -147,6 +147,7 @@ Core Language
* [x] Inline loops
* [x] Comptime
* [x] Sentinel termination
* [x] Quoted identifiers @""
* [ ] Anonymous structs
* [ ] Suspend / Resume
* [ ] Async / Await

View file

@ -391,6 +391,11 @@ const exercises = [_]Exercise{
.main_file = "078_sentinels3.zig",
.output = "Weird Data!",
},
.{
.main_file = "079_quoted_identifiers.zig",
.output = "Sweet freedom: 55, false.",
.hint = "Help us, Zig Programmer, you're our only hope!",
},
};
/// Check the zig version to make sure it can compile the examples properly.

View file

@ -0,0 +1,30 @@
//
// Sometimes you need to create an identifier that will not, for
// whatever reason, play by the naming rules:
//
// const 55_cows: i32 = 55; // ILLEGAL: starts with a number
// const isn't true: bool = false; // ILLEGAL: what even?!
//
// If you try to create either of these under normal
// circumstances, a special Program Identifier Syntax Security
// Team (PISST) will come to your house and take you away.
//
// Thankfully, Zig has a way to sneak these wacky identifiers
// past the authorities: the @"" identifier quoting syntax.
//
// @"foo"
//
// Please help us safely smuggle these fugitive identifiers into
// our program:
//
const print = @import("std").debug.print;
pub fn main() void {
const 55_cows: i32 = 55;
const isn't true: bool = false;
print("Sweet freedom: {}, {}.\n", .{
55_cows,
isn't true,
});
}

View file

@ -0,0 +1,12 @@
23,24c23,24
< const 55_cows: i32 = 55;
< const isn't true: bool = false;
---
> const @"55_cows": i32 = 55;
> const @"isn't true": bool = false;
27,28c27,28
< 55_cows,
< isn't true,
---
> @"55_cows",
> @"isn't true",