我想从函数返回的元组初始化两个字段:
#[derive(Clone, Copy, Debug)]
struct Point {
x: f64,
y: f64,
z: f64,
}
fn f() -> (f64, f64) {
(5., 6.)
}
fn main() {
let mut p = Point {
x: 1.,
y: 2.,
z: 3.,
};
println!("{:?}", p);
match f() {
(x, y) => {
p.x = x;
p.y = y;
}
}
println!("{:?}", p);
}
明显的代码(p.x, p.y) = f()
没有编译,所以我必须使用match
。您是否知道如何使match
赋值更易于阅读?
我想
f
f
,p.x
和p.y
及左侧,match
现在答案 0 :(得分:1)
这是怎么回事?
let (x, y) = f();
p.x = x;
p.y = y;
您可以将let
中的类似模式添加到match
es中。