|
print!系マクロは、コンソールに文字列を出力するマクロ。
マクロ名 | 説明 | Java類似 |
---|---|---|
print! |
標準出力に出力する。 | System.out.print() |
println! |
標準出力に改行付きで出力する。→例 | System.out.println() |
eprint! |
標準エラーに出力する。 | System.err.print() |
eprintln! |
標準エラーに改行付きで出力する。 | System.err.println() |
dbg! |
式と演算結果の値を標準エラーに出力し、その値を返す。→例 (dbg!マクロはRust標準のマクロであり、logクレートのdebug!マクロとは別物) |
print!系マクロでの出力は、cargo testによってテストとして実行したときには、コンソールには出力されない。
(dbg!マクロも内部ではeprintln!()を呼んでいるので、同じ)
cargo testに「-- --nocapture
」を付けるとコンソールに出力されるようになる。
cargo test cargo test -- --nocapture
print!系マクロは、format!マクロの書式を使用できる。
fn main() { println!(); // 改行のみ println!("message"); // 固定文字列 let n = 123; println!("n={}", n); // Displayトレイトが実装されている型は、{}でその値を出力できる println!("n={n}"); // {}内に変数名を書くと、その変数の値が出力される let v = vec![1, 2, 3]; println!("v={:?}", v); // Debugトレイトが実装されている型は、{:?}でその値を出力できる println!("v={v:?}"); }
「dbg!(式)
」を実行すると、標準エラーに「[ソースファイル名:行番号:列番号] 式 = 値
」が出力される。
fn main() { let n = 123; dbg!(n); let n = dbg!(1 + 2); assert_eq!(3, n); }
↓実行例
[src/main.rs:3:5] n = 123 [src/main.rs:5:13] 1 + 2 = 3