day 19 @rust 構造体の出力

まず普通のprint~系の関数はDisplayトレートを使ってフォーマットしている。
しかし自分で作った構造体にはそれを追加しなければならない。
しかし2つの条件を満たす事で出力できるようになる。
1つ目は"{}"の中で"{:?}"とする事
こうする事でDisplayではなくDebugの機能を使って出力するようになる。
2つ目は#[derive(Debug)]をsturctの上につける事であるこれでDebugの機能が使えるようになる。

#[derive(Debug)]
struct MyStruct {
    a: String,
    b: i32,
}

fn main() {
    let ms = MyStruct {
        a: String::from("uu"),
        b: 123,
    };

    println!("{:?}", ms);
}

また{:?}の部分を{:#?}とする事でフィールドごとに改行するようになる。