(эх… как же мне стыдно за мои вопросы) А как создать двухмерным массив? можете рассказать прям на начальном уровне (для чайников)
Матрицы
Создаем массив из массивов и готово:
let mut m = [[10_i32; 3]; 3];
m[1][2] = 99;
dbg!(m);
что такое “10_”
Кажется, на это я отвечал в одной из соседних тем пару дней назад:
что такое “dbg!”?
https://std.rs/dbg → https://doc.rust-lang.org/stable/std/macro.dbg.html
если совсем в двух словах, то макрос для удобной отладочной печати значений.
для куска кода выше выведет:
[src/main.rs:4] m = [
[
10,
10,
10,
],
[
10,
10,
99,
],
[
10,
10,
10,
],
]
Если одной и той же константой, то смотри выше.
Если надо проитерироваться по каждой клетке, то, например, так:
fn main() {
let mut m = [[10_i32; 3]; 3];
for (i, row) in m.iter_mut().enumerate() {
for (j, cell) in row.iter_mut().enumerate() {
*cell = (i * 10 + j) as i32;
}
}
dbg!(m);
}
вывод
[src/main.rs:8] m = [
[
0,
1,
2,
],
[
10,
11,
12,
],
[
20,
21,
22,
],
]