ys memos

Blog

Rust入門 Matrixクラス 6 moduleを利用する


rust

2022/09/24


Rust の勉強を目的とし,Matrix クラスを作る.

それを通して得た知見を残す.

コード全体はこちら



自分で作った module を利用する.


実装した各メソッドを試してみた.

&mut selfで実装した.add()等を呼び出すためのインスタンスであるmatは,mutにする必要がある.

また,selfで実装した(移動する)メソッドであるflatten()を呼び出した後は,matに対してメソッドを呼び出すことは出来ない.

もし呼び出したければ,mat.clone().flatten()にすると良い.

src/main.rs
mod matrix;

fn main() -> Result<(), ()> {
    let mut mat = matrix![[0, 1, 2], [3, 4, 5], [6, 7, 8]];
    let mat_i = matrix![[1, 0, 0], [0, 1, 0], [0, 0, 1]];
    mat.print();
    mat_i.print();

    mat.add(&mat_i)?;

    mat.print();

    mat.diff(&mat_i)?;

    mat.print();
    *mat.at_mut(0, 0) = 3;
    mat.print();

    let v = mat.flatten();
    println!("{v:?}");

    Ok(())
}

マクロによるインスタンス生成と,メソッドを用いた値の変更を確認できた.


関連タグを探す