ExercĂ­cio: Matrizes Aninhadas

Matrizes podem conter outras matrizes:

#![allow(unused)]
fn main() {
let array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
}

Qual Ă© o tipo desta variĂĄvel?

Use uma matriz como a acima para escrever uma função transpose que transporå uma matriz (transformar linhas em colunas):

2584567⎀8⎄9⎊transpose==⎛⎡1⎜⎱4⎝⎣73⎀⎞6⎄⎟9⎩⎠⎡1⎱2⎣3

Codifique ambas as funçÔes a operar em matrizes 3 × 3.

Copie o código abaixo para https://play.rust-lang.org/ e implemente as funçÔes:

// TODO: remova isto quando vocĂȘ terminar sua implementação.
#![allow(unused_variables, dead_code)]

fn transpose(matrix: [[i32; 3]; 3]) -> [[i32; 3]; 3] {
    unimplemented!()
}

#[test]
fn test_transpose() {
    let matrix = [
        [101, 102, 103], //
        [201, 202, 203],
        [301, 302, 303],
    ];
    let transposed = transpose(matrix);
    assert_eq!(
        transposed,
        [
            [101, 201, 301], //
            [102, 202, 302],
            [103, 203, 303],
        ]
    );
}

fn main() {
    let matrix = [
        [101, 102, 103], // <-- o comentĂĄrio faz com que o rustfmt adicione uma nova linha
        [201, 202, 203],
        [301, 302, 303],
    ];

    println!("matriz: {:#?}", matrix);
    let transposed = transpose(matrix);
    println!("transposta: {:#?}", transposed);
}