如何自动为元组结构成员分配默认值
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);
}
但是我遇到了以下错误
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
|
最佳答案
添加#[derive(Default)]
并使用A::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);
}
关于rust - 如何为元组结构成员分配默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74205474/