(эх… как же мне стыдно за мои вопросы) А как создать двухмерным массив? можете рассказать прям на начальном уровне (для чайников)
Создаем массив из массивов и готово:
let mut m = [[10_i32; 3]; 3];
m[1][2] = 99;
dbg!(m);
а что такое “10_” и что такое “dbg!”?
что такое “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,
],
]
у меня получилось так
let mut m:[[i32; 3]; 3] = [[1,2,3],[1,2,5],[1,2,3]];
print!("{}", m[1][2]);
и выводит пять