mirror of
https://codeberg.org/andyscott/ziglings.git
synced 2024-11-08 11:20:46 -05:00
adf5ddb27d
I started off with "hints" that required the poor student to piece together the information from incomplete bits. A complete example is like a picture that is worth 1000 words and far clearer.
48 lines
1.5 KiB
Zig
48 lines
1.5 KiB
Zig
//
|
||
// It seems we got a little carried away making everything "const u8"!
|
||
//
|
||
// "const" values cannot change.
|
||
// "u" types are "unsigned" and cannot store negative values.
|
||
// "8" means the type is 8 bits in size.
|
||
//
|
||
// Example: foo cannot change (it is CONSTant)
|
||
// bar can change (it is VARiable):
|
||
//
|
||
// const foo: u8 = 20;
|
||
// var bar: u8 = 20;
|
||
//
|
||
// Example: foo cannot be negative and can hold 0 to 255
|
||
// bar CAN be negative and can hold −128 to 127
|
||
//
|
||
// const foo: u8 = 20;
|
||
// var bar: i8 = -20;
|
||
//
|
||
// Example: foo can hold 8 bits (0 to 255)
|
||
// bar can hold 16 bits (0 to 65,535)
|
||
//
|
||
// You can do just about any combination of these that you can think of:
|
||
//
|
||
// u32 can hold 0 to 4,294,967,295
|
||
// i64 can hold −9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
|
||
//
|
||
// Please fix this program so that the types can hold the desired values
|
||
// and the errors go away!
|
||
//
|
||
const std = @import("std");
|
||
|
||
pub fn main() void {
|
||
const n: u8 = 50;
|
||
n = n + 5;
|
||
|
||
const pi: u8 = 314159;
|
||
|
||
const negative_eleven: u8 = -11;
|
||
|
||
// There are no errors in the next line, just explanation:
|
||
// Perhaps you noticed before that the print function takes two
|
||
// parameters. Now it will make more sense: the first parameter
|
||
// is a string. The string may contain placeholders '{}', and the
|
||
// second parameter is an "anonymous list literal" (don't worry
|
||
// about this for now!) with the values to be printed.
|
||
std.debug.print("{} {} {}\n", .{n, pi, negative_eleven});
|
||
}
|