Rust 有没有办法部分地解构结构?

Rust 有没有办法部分地解构结构?,rust,destructuring,Rust,Destructuring,我有一个结构: struct ThreeDPoint { x: f32, y: f32, z: f32 } 我想在实例化三个属性后,提取其中的两个: let point: ThreeDPoint = ThreeDPoint { x: 0.3, y: 0.4, z: 0.5 }; let ThreeDPoint { x: my_x, y: my_y } = point; 编译器抛出以下错误: 错误[E0027]:模式未提及字段'z` -->src/structures.

我有一个结构:

struct ThreeDPoint {
    x: f32,
    y: f32,
    z: f32
}
我想在实例化三个属性后,提取其中的两个:

let point: ThreeDPoint = ThreeDPoint { x: 0.3, y: 0.4, z: 0.5 };
let ThreeDPoint { x: my_x, y: my_y } = point;
编译器抛出以下错误:

错误[E0027]:模式未提及字段'z`
-->src/structures.rs:44:9
|
44 |设三点{x:my_x,y:my_y}=点;
|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^缺少字段'z`
在JavaScript(ES6)中,等效的分解结构如下所示:

let { x: my_x, y: my_y } = point;
let point = ThreeDPoint { x: 0.3, y: 0.4, z: 0.5 };
let ThreeDPoint { my_x, my_y, .. } = point;

作为
struct
或元组模式中的一个字段,表示“和其余部分”:


在中有更多关于此的内容。

您可以像这样部分地分解结构:

let { x: my_x, y: my_y } = point;
let point = ThreeDPoint { x: 0.3, y: 0.4, z: 0.5 };
let ThreeDPoint { my_x, my_y, .. } = point;