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); }
また{:?}の部分を{:#?}とする事でフィールドごとに改行するようになる。