LoginSignup
40
15

More than 5 years have passed since last update.

Rustで構造体とか配列をprintln!で一発で出す方法

Posted at

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 }

素晴らしい!構造体の中身がストレス無く確認する事ができました!

40
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
15