This program creates an array of arrays (a 2D array) and then uses it in a variety of ways. It modifies elements and loops over the elements.
fn main() {
// Step 1: create an array of u32 arrays with all 0 initial values.
// ... Then assign some elements.
let mut data = [[0u32; 3]; 3];
data[0][0] = 100;
data[0][1] = 150;
data[2][2] = 200;
println!(
"{:?}", data);
// Step 2: replace the first array with a different array.
data[0] = [8, 8, 8];
println!(
"{:?}", data);
// Step 3: iterate over each row and column with nested for-loops and iter.
for d in data.iter() {
for c in d.iter() {
print!(
"{}, ", c);
}
println!();
}
// Step 4: iterate with for-range loops, and test for values greater than or equal to 100.
for i in 0..data.len() {
for x in 0..data[i].len() {
if data[i][x] >= 100 {
print!(
"***{}***, ", data[i][x]);
} else {
print!(
"{}, ", data[i][x]);
}
}
println!();
}
// Step 5: use iter_mut to change all elements equal to 0 to 1.
for d in data.iter_mut() {
for c in d.iter_mut() {
if *c == 0 {
*c = 1;
}
}
}
println!(
"{:?}", data);
}
[[100, 150, 0], [0, 0, 0], [0, 0, 200]]
[[8, 8, 8], [0, 0, 0], [0, 0, 200]]
8, 8, 8,
0, 0, 0,
0, 0, 200,
8, 8, 8,
0, 0, 0,
0, 0, ***200***,
[[8, 8, 8], [1, 1, 1], [1, 1, 200]]