Go seems to be able to print structs and arrays directly.
struct MyStruct { a: i32, b: i32 }
and
let arr: [i32; 10] = [1; 10];
To print an array in Rust, we use the 😕 Operator inside the println! function.
You want to implement the Debug
trait on your struct. Using #[derive(Debug)]
is the easiest solution. Then you can print it with {:?}
:
#[derive(Debug)] struct MyStruct{ a: i32, b: i32 } fn main() { let x = MyStruct{ a: 10, b: 20 }; println!("{:?}", x); }
As mdup says, you can use Debug
, but you can also use the Display
trait.
All types can derive (automatically create) the fmt::Debug
implementation as #[derive(Debug)]
, but fmt::Display
must be manually implemented.
You can create a custom output:
struct MyStruct { a: i32, b: i32 } impl std::fmt::Display for MyStruct { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { write!(f, "(value a: {}, value b: {})", self.a, self.b) } } fn main() { let test = MyStruct { a: 0, b: 0 }; println!("Used Display: {}", test); }
Shell:
Used Display: (value a: 0, value b: 0)
For more information, you can look at the fmt
module documentation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With