[Avg. reading time: 3 minutes]
Advanced Printing
Pretty Debug Print
Pretty debug print {:#?} prints debug output in an indented, human-readable format for easier inspection of complex data structures.
// Print fn main() { let doesnt_print = (); println!("This will not print: {}", doesnt_print); }
Pretty Print
// Pretty Print fn main() { let doesnt_print = (); println!("This will print: {:#?}", doesnt_print); }
What is the output of this?
// Print Space fn main() { let doesnt_print = ' '; println!("This will not print: {}", doesnt_print); }
// Pretty Print Space fn main() { let doesnt_print = ' '; println!("This will print: {:#?}", doesnt_print); }
Debug Print vs Pretty Debug Print
fn main() { let data = vec![ ("Rachel", 30), ("Monica", 29), ("Phoebe", 31), ]; println!("Regular debug:"); println!("{:?}", data); println!("\nPretty debug:"); println!("{:#?}", data); }
dbg!
fn main() {
let x = 10;
let y = x + 5;
dbg!(x);
dbg!(y);
}
- Prints file name and line number
- Uses Debug formatting automatically
- Returns the value, so it doesn’t break code flow
- dont use dbg in Production.