x); //=> 1 let v = vec![1, 2, 3]; println!("{}", v); println! eprintln! dbg! 5 error[E0277]: `Vec<{integer}>` doesn't implement `std::fmt::Display` --> src/bin/02.rs:5:20 | 5 | println!("{}", v); | ^ `Vec<{integer}>` cannot be formatted with the default formatter | = help: the trait `std::fmt::Display` is not implemented for `Vec<{integer}>` = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
fn div(n: u32, d: u32) -> Option<(u32, u32)> { if d == 0 { return None; } let mut answer = 0; let mut n = n; while n >= d { n -= d; answer += 1; eprintln!("n={}, answer={}", n, answer); } Some((answer, n)) } 特殊な環境でのプリントデバッグ 14 #[cfg(test)] mod tests { use super::div; #[test] fn test_div() { let actual = div(10, 3); eprintln!("actual={:?}", actual); let expected = Some((3, 1)); assert_eq!(actual, expected); } }
cargo test -- --nocapture running 1 test n=7, answer=1 n=4, answer=2 n=1, answer=3 actual=Some((3, 1)) test tests::test_div ... ok 特殊な環境でのプリントデバッグ 16 pub fn div(n: u32, d: u32) -> Option<(u32, u32)> { if d == 0 { return None; } let mut answer = 0; let mut n = n; while n >= d { n -= d; answer += 1; eprintln!("n={}, answer={}", n, answer); } Some((answer, n)) }