mirror of
				https://codeberg.org/ziglings/exercises.git
				synced 2025-11-03 20:25:37 +00:00 
			
		
		
		
	When viewing this file in VSCode, I saw the following warning highlighting lines `15` and `29` ``` The character U+2212 "−" could be confused with the character U+002d "-", which is more common in source code. ``` It seems to me this is just a small oversight, as "-" is used elsewhere in the commented block to denote a negative value, but I'll freely admit ignorance as to any nuance here in using one vs. the other.
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Zig
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.6 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;
 | 
						|
//     const bar: i8 = -20;
 | 
						|
//
 | 
						|
// Example: foo can hold 8 bits (0 to 255)
 | 
						|
//          bar can hold 16 bits (0 to 65,535)
 | 
						|
//
 | 
						|
//     const foo: u8 = 20;
 | 
						|
//     const bar: u16 = 2000;
 | 
						|
//
 | 
						|
// 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 });
 | 
						|
}
 |