Ex 065: improve hints, fix type printing change. For #120 and #128

This commit is contained in:
Dave Gauer 2022-08-29 18:30:38 -04:00
parent 93ecc1643e
commit 8da93b5103
2 changed files with 72 additions and 37 deletions

View file

@ -1,26 +1,39 @@
43c43
< const print = import(std).debug.print; // Oops!
---
> const print = @import("std").debug.print;
60,61c60,61
< ??? = &narcissus;
< ??? = &narcissus;
---
> narcissus.me = &narcissus;
> narcissus.myself = &narcissus;
71c71
< const T2 = narcissus.fetchTheMostBeautifulType();
---
> const T2 = Narcissus.fetchTheMostBeautifulType();
106c106
< if (fields[0].??? != void) {
---
> if (fields[0].field_type != void) {
110c110
< if (fields[1].??? != void) {
---
> if (fields[1].field_type != void) {
114c114
< if (fields[2].??? != void) {
---
> if (fields[2].field_type != void) {
--- exercises/065_builtins2.zig
+++ answers/065_builtins2.zig
@@ -58,7 +58,7 @@
// Oops! We cannot leave the 'me' and 'myself' fields
// undefined. Please set them here:
narcissus.me = &narcissus;
- narcissus.??? = ???;
+ narcissus.myself = &narcissus;
// This determines a "peer type" from three separate
// references (they just happen to all be the same object).
@@ -70,7 +70,7 @@
//
// The fix for this is very subtle, but it makes a big
// difference!
- const Type2 = narcissus.fetchTheMostBeautifulType();
+ const Type2 = Narcissus.fetchTheMostBeautifulType();
// Now we print a pithy statement about Narcissus.
print("A {s} loves all {s}es. ", .{
@@ -109,15 +109,15 @@
// Please complete these 'if' statements so that the field
// name will not be printed if the field is of type 'void'
// (which is a zero-bit type that takes up no space at all!):
- if (fields[0].??? != void) {
+ if (fields[0].field_type != void) {
print(" {s}", .{@typeInfo(Narcissus).Struct.fields[0].name});
}
- if (fields[1].??? != void) {
+ if (fields[1].field_type != void) {
print(" {s}", .{@typeInfo(Narcissus).Struct.fields[1].name});
}
- if (fields[2].??? != void) {
+ if (fields[2].field_type != void) {
print(" {s}", .{@typeInfo(Narcissus).Struct.fields[2].name});
}