How to automatically assign default values to tuple struct members
struct A(f64, i32);
fn main() {
let mut a: A; // expect a.0 = 0.0, a.1 = 0
// even below 2 line code doesn't compile
// a.0 = 1.2;
// a.1 = 3;
println!("{}, {}", a.0, a.1);
}
But I’m getting below error
error[E0381]: used binding `a` isn't initialized
--> src/main.rs:5:24
|
4 | let mut a: A; // expect a.0 = 0.0, a.1 = 0
| ----- binding declared here but left uninitialized
5 | println!("{}, {}", a.0, a.1);
| ^^^ `a.0` used here but it isn't initialized
|
>Solution :
Add #[derive(Default)] and initialize with A::default (or Default::default()):
#[derive(Default)]
struct A(f64, i32);
fn main() {
let mut a = A::default(); // expect a.0 = 0.0, a.1 = 0
println!("{}, {}", a.0, a.1);
}