Rustで構造体とか配列をprintln!で一発で出す方法
##環境
rustc 1.27.1
Zorin OS 12.3
##概要
Rustで構造体とか配列をprintln!で一発で出す方法を書きます。
配列を一発で出す
下の例では、初期値0でサイズ10の配列をlistに生み出し、それをprintln!で出力しようとしています。
しかし、エラーが出て動きません。
fn main(){
let list = vec![0; 10];
println!("{}", list);
}
出力
エラーメッセージは省略...
println!の中の{ }に変更を加えることで、この問題は解決できます。
fn main(){
let list = vec![0; 10];
println!("{:?}", list);
}
出力
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
構造体を一発で出す
配列で出来たのであれば、構造体でも可能なのでしょうか。
以下の例では、TestStruct構造体を作成して先ほど紹介した方法で見ようとしていますが
残念ながらエラーが出力されています。
fn main(){
struct TestStruct {
x: f64,
y: f64,
side: f64,
};
let t = TestStruct{x: 2.0, y:3.0, side: 5.0};
println!("{:?}", t);
}
出力
エラーメッセージは省略...
加える変更はたった一つです。
structの上に#[derive(Debug)]を付けてあげましょう。
fn main(){
#[derive(Debug)]
struct TestStruct {
x: f64,
y: f64,
side: f64,
};
let t = TestStruct{x: 2.0, y:3.0, side: 5.0};
println!("{:?}", t);
}
出力
TestStruct { x: 2.0, y: 3.0, side: 5.0 }
素晴らしい!構造体の中身がストレス無く確認する事ができました!