|
@@ -1,31 +1,49 @@
|
|
//
|
|
//
|
|
// Let's learn some array basics. Arrays are declared with:
|
|
// Let's learn some array basics. Arrays are declared with:
|
|
//
|
|
//
|
|
-// const foo [size]<type> = [size]<type>{ values };
|
|
|
|
|
|
+// var foo [3]u32 = [3]u32{ 42, 108, 5423 };
|
|
//
|
|
//
|
|
// When Zig can infer the size of the array, you can use '_' for the
|
|
// When Zig can infer the size of the array, you can use '_' for the
|
|
// size. You can also let Zig infer the type of the value so the
|
|
// size. You can also let Zig infer the type of the value so the
|
|
// declaration is much less verbose.
|
|
// declaration is much less verbose.
|
|
//
|
|
//
|
|
-// const foo = [_]<type>{ values };
|
|
|
|
|
|
+// var foo = [_]u32{ 42, 108, 5423 };
|
|
|
|
+//
|
|
|
|
+// Get values of an array using array[index] notation:
|
|
|
|
+//
|
|
|
|
+// const bar = foo[3]; // 5423
|
|
|
|
+//
|
|
|
|
+// Set values of an array using array[index] notation:
|
|
|
|
+//
|
|
|
|
+// foo[3] = 16;
|
|
|
|
+//
|
|
|
|
+// Get the length of an array using the len property:
|
|
|
|
+//
|
|
|
|
+// const length = foo.len;
|
|
//
|
|
//
|
|
const std = @import("std");
|
|
const std = @import("std");
|
|
|
|
|
|
pub fn main() void {
|
|
pub fn main() void {
|
|
-
|
|
|
|
|
|
+ // (Problem 1)
|
|
|
|
+ // This "const" is going to cause a problem later - can you see what it is?
|
|
|
|
+ // How do we fix it?
|
|
const some_primes = [_]u8{ 1, 3, 5, 7, 11, 13, 17, 19 };
|
|
const some_primes = [_]u8{ 1, 3, 5, 7, 11, 13, 17, 19 };
|
|
|
|
|
|
- // Individual values can be set with '[]' notation. Let's fix
|
|
|
|
- // the first prime (it should be 2!):
|
|
|
|
|
|
+ // Individual values can be set with '[]' notation.
|
|
|
|
+ // Example: This line changes the first prime to 2 (which is correct):
|
|
some_primes[0] = 2;
|
|
some_primes[0] = 2;
|
|
|
|
|
|
// Individual values can also be accessed with '[]' notation.
|
|
// Individual values can also be accessed with '[]' notation.
|
|
|
|
+ // Example: This line stores the first prime in "first":
|
|
const first = some_primes[0];
|
|
const first = some_primes[0];
|
|
|
|
|
|
- // Looks like we need to complete this expression (like 'first'):
|
|
|
|
- const fourth = ???;
|
|
|
|
|
|
+ // (Problem 2)
|
|
|
|
+ // Looks like we need to complete this expression. Use the example
|
|
|
|
+ // above to set "fourth" to the fourth element of the some_primes array:
|
|
|
|
+ const fourth = some_primes[???];
|
|
|
|
|
|
- // Use '.len' to get the length of the array:
|
|
|
|
|
|
+ // (Problem 3)
|
|
|
|
+ // Use the len property to get the length of the array:
|
|
const length = some_primes.???;
|
|
const length = some_primes.???;
|
|
|
|
|
|
std.debug.print("First: {}, Fourth: {}, Length: {}\n",
|
|
std.debug.print("First: {}, Fourth: {}, Length: {}\n",
|